Package org.jxmpp.jid

Interface Jid

All Superinterfaces:
CharSequence, Comparable<Jid>, Serializable
All Known Subinterfaces:
BareJid, DomainBareJid, DomainFullJid, DomainJid, EntityBareJid, EntityFullJid, EntityJid, FullJid
All Known Implementing Classes:
AbstractJid, DomainAndResourcepartJid, DomainpartJid, LocalAndDomainpartJid, LocalDomainAndResourcepartJid

public interface Jid extends Comparable<Jid>, CharSequence, Serializable
An XMPP address, also known as JID (formerly for "Jabber Identifier"), which acts as globally unique address within the XMPP network.

JIDs are created from String or CharSequence with the JidCreate utility.

 Jid jid = JidCreate.from("[email protected]/balcony");
 EntityBareJid bareJid = JidCreate.entityBareFrom("[email protected]");
 

This is the super interface for all JID types, which are constructed from two dimensions: Bare/Full and Domain/Entity. Every JID consists at least of a Domainpart. Bare JID types do not come with a Resourcepart, full JID types always have a Resourcepart. Domain JID types do not possess a Localpart, whereas entity JID types always do.

The following table shows a few examples of JID types.

XMPP Address Types
Example Type
example.org DomainBareJid
example.org/resource DomainFullJid
[email protected] EntityBareJid
[email protected]/resource EntityFullJid

You can retrieve the escaped String representing the Jid with toString() or the unescaped String of the JID with asUnescapedString().

URL Encoded JIDs

The URL encoded representation of a JID is ideal if a JID should be stored as part of a path name, e.g. as file name. You can retrieve this information using asUrlEncodedString(). The JidCreate API provides methods to create JIDs from URL encoded Strings like JidCreate.fromUrlEncoded(CharSequence).

See Also:
  • Method Details

    • getDomain

      Domainpart getDomain()
      Get the Domainpart of this Jid.
      Returns:
      the domainpart.
    • toString

      String toString()
      Returns the String representation of this JID.
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
      Returns:
      the String representation of this JID.
    • asUnescapedString

      String asUnescapedString()
      Return the unescaped String representation of this JID.

      Since certain Unicode code points are disallowed in the localpart of a JID by the required stringprep profile, those need to get escaped when used in a real JID. The unescaped representation of the JID is only for presentation to a human user or for gatewaying to a non-XMPP system.

      For example, if the users inputs 'at&t [email protected]', the escaped real JID created with JidCreate will be 'at\26t\[email protected]', which is what toString() will return. But asUnescapedString() will return again 'at&t [email protected]'.
      Returns:
      the unescaped String representation of this JID.
    • asUrlEncodedString

      String asUrlEncodedString()
      Get the URL encoded version of this JID.
      Returns:
      the URL encoded version of this JID.
      Since:
      0.7.0
    • isEntityJid

      boolean isEntityJid()
      Check if this is a EntityBareJid or EntityFullJid.
      Returns:
      true if this is an instance of BareJid or FullJid.
    • isEntityBareJid

      boolean isEntityBareJid()
      Check if this is an instance of EntityBareJid.
      Returns:
      true if this is an instance of EntityBareJid
    • isEntityFullJid

      boolean isEntityFullJid()
      Check if this is an instance of EntityFullJid.
      Returns:
      true if this is an instance of EntityFullJid
    • isDomainBareJid

      boolean isDomainBareJid()
      Check if this is an instance of DomainBareJid.
      Returns:
      true if this is an instance of DomainBareJid
    • isDomainFullJid

      boolean isDomainFullJid()
      Check if this is an instance of DomainFullJid.
      Returns:
      true if this is an instance of DomainFullJid
    • hasNoResource

      boolean hasNoResource()
      Check if this is an instance of EntityBareJid or DomainBareJid.
      Returns:
      true if this is an instance of BareJid or DomainBareJid
    • hasResource

      boolean hasResource()
      Check if this is a Jid with a Resourcepart.
      Returns:
      true if this Jid has a resourcepart.
    • hasLocalpart

      boolean hasLocalpart()
      Check if this is a Jid with a Localpart.
      Returns:
      true if this Jid has a localpart.
    • asBareJid

      BareJid asBareJid()
      Return a JID created by removing the Resourcepart from this JID.
      Returns:
      this Jid without a Resourcepart.
    • asEntityBareJidIfPossible

      EntityBareJid asEntityBareJidIfPossible()
      Convert this Jid to a EntityBareJid if possible.
      Returns:
      the corresponding EntityBareJid or null.
    • asEntityBareJidOrThrow

      EntityBareJid asEntityBareJidOrThrow()
      Convert this Jid to a EntityBareJid or throw an IllegalStateException if this is not possible.
      Returns:
      the corresponding EntityBareJid.
    • asEntityFullJidIfPossible

      EntityFullJid asEntityFullJidIfPossible()
      Convert this Jid to a EntityFullJid if possible.
      Returns:
      the corresponding EntityFullJid or null.
    • asEntityFullJidOrThrow

      EntityFullJid asEntityFullJidOrThrow()
      Convert this Jid to a EntityFullJid or throw an IllegalStateException if this is not possible.
      Returns:
      the corresponding EntityFullJid.
    • asEntityJidIfPossible

      EntityJid asEntityJidIfPossible()
      Convert this Jid to a EntityJid if possible.
      Returns:
      the corresponding EntityJid or null.
    • asEntityJidOrThrow

      EntityJid asEntityJidOrThrow()
      Convert this Jid to a EntityJid or throw an IllegalStateException if this is not possible.
      Returns:
      the corresponding EntityJid.
    • asFullJidIfPossible

      FullJid asFullJidIfPossible()
      Convert this Jid to a FullJid if possible.
      Returns:
      the corresponding FullJid or null.
    • asFullJidOrThrow

      EntityFullJid asFullJidOrThrow()
      Convert this Jid to a FullJid or throw an IllegalStateException if this is not possible.
      Returns:
      the corresponding FullJid.
    • asDomainBareJid

      DomainBareJid asDomainBareJid()
      Convert this Jid to a DomainBareJid.

      Note that it is always possible to convert a Jid to a DomainBareJid, since every Jid has a domain part.

      Returns:
      the corresponding DomainBareJid.
    • asDomainFullJidIfPossible

      DomainFullJid asDomainFullJidIfPossible()
      Convert this Jid to a DomainFullJid if possible.
      Returns:
      the corresponding DomainFullJid or null.
    • asDomainFullJidOrThrow

      DomainFullJid asDomainFullJidOrThrow()
      Convert this Jid to a DomainFullJid or throw an IllegalStateException if this is not possible.
      Returns:
      the corresponding DomainFullJid.
    • getResourceOrNull

      Resourcepart getResourceOrNull()
      Get the resourcepart of this JID or null.

      If the JID is of form <[email protected]/resource> then this method returns 'resource'. If the JID no resourcepart, then null is returned.

      Returns:
      the resource of this JID or null.
    • getResourceOrEmpty

      Resourcepart getResourceOrEmpty()
      Get the resourcepart of this JID or return the empty resourcepart.

      If the JID is of form <[email protected]/resource> then this method returns 'resource'. If the JID no resourcepart, then Resourcepart.EMPTY is returned.

      Returns:
      the resource of this JID or the empty resourcepart.
    • getResourceOrThrow

      Resourcepart getResourceOrThrow()
      Get the resourcepart of this JID or throw an IllegalStateException.

      If the JID is of form <[email protected]/resource> then this method returns 'resource'. If the JID no resourcepart, then an IllegalStateException is thrown.

      Returns:
      the resource of this JID.
    • getLocalpartOrNull

      Localpart getLocalpartOrNull()
      Get the localpart of this JID or null.

      If the JID is of form <[email protected]> then this method returns 'localpart'. If the JID has no localpart, then null is returned.

      Returns:
      the localpart of this JID or null.
    • getLocalpartOrThrow

      Localpart getLocalpartOrThrow()
      Get the localpart of this JID or throw an IllegalStateException.

      If the JID is of form <[email protected]> then this method returns 'localpart'. If the JID has no localpart, then null is returned.

      Returns:
      the localpart of this JID.
    • isParentOf

      boolean isParentOf(Jid jid)
      Check if this JID is the parent of another JID. The parent of relation is defined, under the precondition that the JID parts (localpart, domainpart and resourcepart) are equal, as follows:
       | this JID (parentOf) | other JID           | result |
       |---------------------+---------------------+--------|
       | dom.example         | dom.example         | true   |
       | dom.example         | dom.example/res     | true   |
       | dom.example         | [email protected]     | true   |
       | dom.example         | [email protected]/res | true   |
       | dom.example/res     | dom.exmple          | false  |
       | dom.example/res     | dom.example/res     | true   |
       | dom.example/res     | [email protected]     | false  |
       | dom.example/res     | [email protected]/res | false  |
       | [email protected]     | dom.example         | false  |
       | [email protected]     | dom.example/res     | false  |
       | [email protected]     | [email protected]     | true   |
       | [email protected]     | [email protected]/res | true   |
       | [email protected]/res | dom.example         | false  |
       | [email protected]/res | dom.example/res     | false  |
       | [email protected]/res | [email protected]     | false  |
       | [email protected]/res | [email protected]/res | true   |
       
      Parameters:
      jid - the other JID to compare with
      Returns:
      true if this JID is a parent of the given JID.
    • isParentOf

      boolean isParentOf(EntityBareJid bareJid)
      Parameters:
      bareJid - the bare JID.
      Returns:
      true if this JID is a parent of the given JID.
    • isParentOf

      boolean isParentOf(EntityFullJid fullJid)
      Parameters:
      fullJid - the full JID.
      Returns:
      true if this JID is a parent of the given JID.
    • isParentOf

      boolean isParentOf(DomainBareJid domainBareJid)
      Parameters:
      domainBareJid - the domain bare JID.
      Returns:
      true if this JID is a parent of the given JID.
    • isParentOf

      boolean isParentOf(DomainFullJid domainFullJid)
      Parameters:
      domainFullJid - the domain full JID.
      Returns:
      true if this JID is a parent of the given JID.
    • downcast

      <T extends Jid> T downcast(Class<T> jidClass) throws ClassCastException
      Return the downcasted instance of this Jid. This method is unsafe, make sure to check that this is actually of the type of are casting to.
      Type Parameters:
      T - the Jid type to downcast to.
      Parameters:
      jidClass - the class of JID to downcast too.
      Returns:
      the downcasted instanced of this
      Throws:
      ClassCastException - if this JID is not assignable to the type T.
    • equals

      boolean equals(CharSequence charSequence)
      Compares the given CharSequence with this JID. Returns true if equals(charSequence.toString() would return true.
      Parameters:
      charSequence - the CharSequence to compare this JID with.
      Returns:
      true if if equals(charSequence.toString() would return true.
      See Also:
    • equals

      boolean equals(String string)
      Compares the given String wit this JID.

      Returns true if toString().equals(string), that is if the String representation of this JID matches the given string.

      Parameters:
      string - the String to compare this JID with.
      Returns:
      true if toString().equals(string).
    • intern

      String intern()
      Returns the canonical String representation of this JID. See String.intern() for details.
      Returns:
      the canonical String representation.