public final class Jid extends Object implements Comparable<Jid>, Serializable, CharSequence
A JID consists of three parts:
[ localpart "@" ] domainpart [ "/" resourcepart ]
The easiest way to create a JID is to use theof(CharSequence) method:
Jid jid = Jid.of("juliet@capulet.lit/balcony");
You can then get the parts from it via the respective methods:
String local = jid.getLocal(); // juliet
String domain = jid.getDomain(); // capulet.lit
String resource = jid.getResource(); // balcony
This class overrides equals() and hashCode(), so that different instances with the same value are equal:
Jid.of("romeo@capulet.lit/balcony").equals(Jid.of("romeo@capulet.lit/balcony")); // true
This class also supports XEP-0106: JID Escaping, i.e.
Jid.of("d'artagnan@musketeers.lit")
is escaped as d\\27artagnan@musketeers.lit.
This class is thread-safe and immutable.
| Modifier and Type | Field and Description |
|---|---|
static String |
ESCAPING_FEATURE
The service discovery feature used for determining support of JID escaping (
jid\20escaping). |
| Modifier and Type | Method and Description |
|---|---|
Jid |
asBareJid()
Converts this JID into a bare JID, i.e. removes the resource part.
|
Jid |
atSubdomain(CharSequence subdomain)
Creates a new JID at a subdomain and at the same domain as this JID.
|
char |
charAt(int index) |
int |
compareTo(Jid o)
Compares this JID with another JID.
|
boolean |
equals(Object o) |
String |
getDomain()
Gets the domain part.
|
String |
getLocal()
Gets the local part of the JID, also known as the name or node.
|
String |
getResource()
Gets the resource part.
|
int |
hashCode() |
boolean |
isBareJid()
Checks if the JID is a bare JID.
|
boolean |
isFullJid()
Checks if the JID is a full JID.
|
int |
length() |
static Jid |
of(CharSequence jid)
Creates a JID from an unescaped string.
|
static Jid |
of(CharSequence local,
CharSequence domain,
CharSequence resource)
Returns a full JID with a domain and resource part, e.g.
|
static Jid |
ofDomain(CharSequence domain)
Creates a bare JID with only the domain part, e.g.
|
static Jid |
ofDomainAndResource(CharSequence domain,
CharSequence resource)
Creates a full JID with a domain and resource part, e.g.
|
static Jid |
ofEscaped(CharSequence jid)
Creates a JID from a escaped JID string.
|
static Jid |
ofLocalAndDomain(CharSequence local,
CharSequence domain)
Creates a bare JID with a local and domain part, e.g.
|
CharSequence |
subSequence(int start,
int end) |
String |
toEscapedString()
Returns the JID in escaped form as described in XEP-0106: JID Escaping.
|
String |
toString()
Returns the JID in its string representation, i.e. [ localpart "@" ] domainpart [ "/" resourcepart ].
|
Jid |
withLocal(CharSequence local)
Creates a new JID with a new local part and the same domain and resource part of the current JID.
|
Jid |
withResource(CharSequence resource)
Creates a new full JID with a resource and the same local and domain part of the current JID.
|
chars, codePointspublic static final String ESCAPING_FEATURE
jid\20escaping).public static Jid of(CharSequence local, CharSequence domain, CharSequence resource)
capulet.com/balconylocal - The local part.domain - The domain.resource - The resource part.NullPointerException - If the domain is null.IllegalArgumentException - If the domain, local or resource part are not valid.public static Jid ofDomain(CharSequence domain)
capulet.comdomain - The domain.NullPointerException - If the domain is null.IllegalArgumentException - If the domain or local part are not valid.public static Jid ofLocalAndDomain(CharSequence local, CharSequence domain)
juliet@capulet.comlocal - The local part.domain - The domain.NullPointerException - If the domain is null.IllegalArgumentException - If the domain or local part are not valid.public static Jid ofDomainAndResource(CharSequence domain, CharSequence resource)
capulet.com/balconydomain - The domain.resource - The resource part.NullPointerException - If the domain is null.IllegalArgumentException - If the domain or resource are not valid.public static Jid of(CharSequence jid)
The input string will be escaped.[ localpart "@" ] domainpart [ "/" resourcepart ]
jid - The JID.NullPointerException - If the jid is null.IllegalArgumentException - If the jid could not be parsed or is not valid.public static Jid ofEscaped(CharSequence jid)
This method should be used, when parsing JIDs from the XMPP stream.[ localpart "@" ] domainpart [ "/" resourcepart ]
Note, that validation and enforcement is skipped when using this method, because it's expected, that JID strings passed to this method are already enforced.
jid - The JID.NullPointerException - If the jid is null.IllegalArgumentException - If the jid could not be parsed or is not valid.public final boolean isFullJid()
The term "full JID" refers to an XMPP address of the form <localpart@domainpart/resourcepart> (for a particular authorized client or device associated with an account) or of the form <domainpart/resourcepart> (for a particular resource or script associated with a server).
public final boolean isBareJid()
The term "bare JID" refers to an XMPP address of the form <localpart@domainpart> (for an account at a server) or of the form <domainpart> (for a server).
public final Jid asBareJid()
The term "bare JID" refers to an XMPP address of the form <localpart@domainpart> (for an account at a server) or of the form <domainpart> (for a server).
withResource(CharSequence)public final Jid withLocal(CharSequence local)
local - The local part.IllegalArgumentException - If the local is not a valid local part.withResource(CharSequence)public final Jid withResource(CharSequence resource)
resource - The resource.IllegalArgumentException - If the resource is not a valid resource part.asBareJid(),
withLocal(CharSequence)public final Jid atSubdomain(CharSequence subdomain)
subdomain - The subdomain.NullPointerException - If subdomain is null.IllegalArgumentException - If subdomain is not a valid subdomain name.public final String getLocal()
The localpart of a JID is an optional identifier placed before the domainpart and separated from the latter by the '@' character. Typically, a localpart uniquely identifies the entity requesting and using network access provided by a server (i.e., a local account), although it can also represent other kinds of entities (e.g., a chatroom associated with a multi-user chat service [XEP-0045]). The entity represented by an XMPP localpart is addressed within the context of a specific domain (i.e., <localpart@domainpart>).
public final String getDomain()
The domainpart is the primary identifier and is the only REQUIRED element of a JID (a mere domainpart is a valid JID). Typically, a domainpart identifies the "home" server to which clients connect for XML routing and data management functionality.
public final String getResource()
The resourcepart of a JID is an optional identifier placed after the domainpart and separated from the latter by the '/' character. A resourcepart can modify either a <localpart@domainpart> address or a mere <domainpart> address. Typically, a resourcepart uniquely identifies a specific connection (e.g., a device or location) or object (e.g., an occupant in a multi-user chatroom [XEP-0045]) belonging to the entity associated with an XMPP localpart at a domain (i.e., <localpart@domainpart/resourcepart>).
public final String toEscapedString()
toString()public final int length()
length in interface CharSequencepublic final char charAt(int index)
charAt in interface CharSequencepublic final CharSequence subSequence(int start, int end)
subSequence in interface CharSequencepublic final String toString()
toString in interface CharSequencetoString in class ObjecttoEscapedString()public final int compareTo(Jid o)
compareTo in interface Comparable<Jid>o - The other JID.Copyright © 2014–2018 XMPP.rocks. All rights reserved.