Class RosterExchange
- java.lang.Object
-
- org.jivesoftware.smackx.xroster.packet.RosterExchange
-
- All Implemented Interfaces:
Element
,ExtensionElement
,FullyQualifiedElement
,NamedElement
,XmlLangElement
public class RosterExchange extends Object implements ExtensionElement
Represents XMPP Roster Item Exchange packets.The 'jabber:x:roster' namespace (which is not to be confused with the 'jabber:iq:roster' namespace) is used to send roster items from one client to another. A roster item is sent by adding to the <message/> element an <x/> child scoped by the 'jabber:x:roster' namespace. This <x/> element may contain one or more <item/> children (one for each roster item to be sent).
Each <item/> element may possess the following attributes:
<jid/> -- The id of the contact being sent. This attribute is required.
<name/> -- A natural-language nickname for the contact. This attribute is optional.Each <item/> element may also contain one or more <group/> children specifying the natural-language name of a user-specified group, for the purpose of categorizing this contact into one or more roster groups.
-
-
Constructor Summary
Constructors Constructor Description RosterExchange()
Creates a new empty roster exchange package.RosterExchange(Roster roster)
Creates a new roster exchange package with the entries specified in roster.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addRosterEntry(RosterEntry rosterEntry)
Adds a roster entry to the packet.void
addRosterEntry(RemoteRosterEntry remoteRosterEntry)
Adds a remote roster entry to the packet.String
getElementName()
Returns the XML element name of the extension sub-packet root element.int
getEntryCount()
Returns a count of the entries in the roster exchange.String
getNamespace()
Returns the XML namespace of the extension sub-packet root element.Iterator<RemoteRosterEntry>
getRosterEntries()
Returns an Iterator for the roster entries in the packet.String
toXML(XmlEnvironment enclosingNamespace)
Returns the XML representation of a Roster Item Exchange according the specification.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jivesoftware.smack.packet.FullyQualifiedElement
getLanguage, getQName
-
-
-
-
Constructor Detail
-
RosterExchange
public RosterExchange()
Creates a new empty roster exchange package.
-
RosterExchange
public RosterExchange(Roster roster)
Creates a new roster exchange package with the entries specified in roster.- Parameters:
roster
- the roster to send to other XMPP entity.
-
-
Method Detail
-
addRosterEntry
public void addRosterEntry(RosterEntry rosterEntry)
Adds a roster entry to the packet.- Parameters:
rosterEntry
- a roster entry to add.
-
addRosterEntry
public void addRosterEntry(RemoteRosterEntry remoteRosterEntry)
Adds a remote roster entry to the packet.- Parameters:
remoteRosterEntry
- a remote roster entry to add.
-
getElementName
public String getElementName()
Returns the XML element name of the extension sub-packet root element. Always returns "x"- Specified by:
getElementName
in interfaceNamedElement
- Returns:
- the XML element name of the stanza extension.
-
getNamespace
public String getNamespace()
Returns the XML namespace of the extension sub-packet root element. According the specification the namespace is always "jabber:x:roster" (which is not to be confused with the 'jabber:iq:roster' namespace- Specified by:
getNamespace
in interfaceFullyQualifiedElement
- Returns:
- the XML namespace of the stanza extension.
-
getRosterEntries
public Iterator<RemoteRosterEntry> getRosterEntries()
Returns an Iterator for the roster entries in the packet.- Returns:
- an Iterator for the roster entries in the packet.
-
getEntryCount
public int getEntryCount()
Returns a count of the entries in the roster exchange.- Returns:
- the number of entries in the roster exchange.
-
toXML
public String toXML(XmlEnvironment enclosingNamespace)
Returns the XML representation of a Roster Item Exchange according the specification. Usually the XML representation will be inside of a Message XML representation like in the following example:<message id="MlIpV-4" to="gato1@gato.home" from="gato3@gato.home/Smack"> <subject>Any subject you want</subject> <body>This message contains roster items.</body> <x xmlns="jabber:x:roster"> <item jid="gato1@gato.home"/> <item jid="gato2@gato.home"/> </x> </message>
-
-