Package org.jivesoftware.smack.packet
Class IQ
java.lang.Object
org.jivesoftware.smack.packet.Stanza
org.jivesoftware.smack.packet.IQ
- All Implemented Interfaces:
Element
,IqView
,NamedElement
,StanzaView
,TopLevelStreamElement
,XmlElement
,XmlLangElement
- Direct Known Subclasses:
AbstractHttpOverXmpp
,AdHocCommandData
,AgentChatHistory
,AgentInfo
,AgentStatusRequest
,AgentWorkgroups
,Bind
,BlockContactsIQ
,BlockListIQ
,BoBIQ
,Bytestream
,ChatMetadata
,ChatNotes
,ChatSettings
,Close
,Data
,DepartQueuePacket
,DisablePushNotificationsIQ
,DiscoverInfo
,DiscoverItems
,DnsIq
,EmptyResultIQ
,EnablePushNotificationsIQ
,ErrorIQ
,GenericSettings
,IoTClaimed
,IoTDataReadOutAccepted
,IoTDataRequest
,IoTDisown
,IoTDisowned
,IoTIsFriend
,IoTIsFriendResponse
,IoTMine
,IoTRegister
,IoTRemove
,IoTRemoved
,IoTSetRequest
,IoTSetResponse
,IoTUnregister
,JidPrepIq
,Jingle
,Jingle
,LastActivity
,Macros
,MamFinIQ
,MamPrefsIQ
,MamQueryIQ
,MonitorPacket
,MUCAdmin
,MUCLightAffiliationsIQ
,MUCLightBlockingIQ
,MUCLightChangeAffiliationsIQ
,MUCLightConfigurationIQ
,MUCLightCreateIQ
,MUCLightDestroyIQ
,MUCLightGetAffiliationsIQ
,MUCLightGetConfigsIQ
,MUCLightGetInfoIQ
,MUCLightInfoIQ
,MUCLightSetConfigsIQ
,MUCOwner
,OccupantsInfo
,OfferRequestProvider.OfferRequestPacket
,OfferRevokeProvider.OfferRevokePacket
,OfflineMessageRequest
,Open
,Privacy
,PrivateDataIQ
,PubSub
,Registration
,RoomInvitation.RoomInvitationIQ
,RoomTransfer.RoomTransferIQ
,RosterPacket
,RTPBridge
,SharedGroupsInfo
,SimpleIQ
,Slot
,SlotRequest
,StreamInitiation
,Time
,Transcript
,Transcripts
,UnblockContactsIQ
,UnparsedIQ
,VCard
,Version
,WorkgroupProperties
The base IQ (Info/Query) packet. IQ packets are used to get and set information
on the server, including authentication, roster operations, and creating
accounts. Each IQ stanza has a specific type that indicates what type of action
is being taken: "get", "set", "result", or "error".
IQ packets can contain a single child element that exists in a specific XML namespace. The combination of the element name and namespace determines what type of IQ stanza it is. Some example IQ subpacket snippets:
- <query xmlns="jabber:iq:auth"> -- an authentication IQ.
- <query xmlns="jabber:iq:private"> -- a private storage IQ.
- <pubsub xmlns="http://jabber.org/protocol/pubsub"> -- a pubsub IQ.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static enum
static enum
A enum to represent the type of the IQ stanza. -
Field Summary
FieldsFields inherited from class org.jivesoftware.smack.packet.Stanza
DEFAULT_LANGUAGE, ITEM, language, TEXT
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ErrorIQ
createErrorResponse
(IQ request, StanzaError error) static ErrorIQ
createErrorResponse
(IQ request, StanzaError.Condition condition) static IQ
createResultIQ
(IQ request) Convenience method to create a new emptyIQ.Type.result
IQ based on aIQ.Type.get
orIQ.Type.set
IQ.final String
final String
final QName
final XmlStringBuilder
Returns the sub-element XML section of the IQ packet, or the empty String if there isn't one.final String
Returns the root element name.protected abstract IQ.IQChildElementXmlStringBuilder
This method must be overwritten by IQ subclasses to create their child content.final IQ.Type
getType()
Returns the type of the IQ packet.void
Sets the type of the IQ packet.final String
toString()
Returns a short String describing the Stanza.final XmlStringBuilder
toXML
(XmlEnvironment enclosingXmlEnvironment) Methods inherited from class org.jivesoftware.smack.packet.Stanza
addCommonAttributes, addExtension, addExtensions, appendErrorIfExists, getDefaultLanguage, getError, getExtension, getExtension, getExtensionElement, getExtensions, getExtensions, getExtensions, getExtensions, getExtensionsMap, getFrom, getLanguage, getNamespace, getStanzaId, getTo, hasExtension, hasExtension, hasStanzaIdSet, logCommonAttributes, overrideExtension, removeExtension, setError, setFrom, setNewStanzaId, setStanzaId, setTo, throwIfNoStanzaId
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.jivesoftware.smack.packet.IqView
isRequestIQ, isResponseIQ
Methods inherited from interface org.jivesoftware.smack.packet.StanzaView
getError, getExtension, getExtension, getExtensions, getExtensions, getExtensions, getFrom, getStanzaId, getTo, hasExtension, hasExtension, hasExtension
Methods inherited from interface org.jivesoftware.smack.packet.XmlElement
getQName
-
Field Details
-
IQ_ELEMENT
- See Also:
-
QUERY_ELEMENT
- See Also:
-
-
Constructor Details
-
IQ
-
IQ
-
IQ
-
IQ
-
-
Method Details
-
getType
Description copied from interface:IqView
Returns the type of the IQ packet. -
setType
Sets the type of the IQ packet.Since the type of an IQ must present, an IllegalArgumentException will be thrown when type is
null
.- Parameters:
type
- the type of the IQ packet.
-
getChildElementQName
-
getChildElementName
-
getChildElementNamespace
-
getElementName
Description copied from interface:NamedElement
Returns the root element name.- Specified by:
getElementName
in interfaceNamedElement
- Returns:
- the element name.
-
toString
Description copied from class:Stanza
Returns a short String describing the Stanza. This method is suited for log purposes. -
toXML
-
getChildElementXML
Returns the sub-element XML section of the IQ packet, or the empty String if there isn't one.- Returns:
- the child element section of the IQ XML.
-
getIQChildElementBuilder
protected abstract IQ.IQChildElementXmlStringBuilder getIQChildElementBuilder(IQ.IQChildElementXmlStringBuilder xml) This method must be overwritten by IQ subclasses to create their child content. It is important you don't use the builder to add the final end tag. This will be done automatically byIQ.IQChildElementXmlStringBuilder
after eventual existingExtensionElement
s have been added.For example to create an IQ with a extra attribute and an additional child element
<iq to='foo@example.org' id='123'> <bar xmlns='example:bar' extraAttribute='blaz'> <extraElement>elementText</extraElement> </bar> </iq>
getIQChildElementBuilder
looks like// The builder 'xml' will already have the child element and the 'xmlns' attribute added // So the current builder state is "<bar xmlns='example:bar'" xml.attribute("extraAttribute", "blaz"); xml.rightAngleBracket(); xml.element("extraElement", "elementText"); // Do not close the 'bar' attribute by calling xml.closeElement('bar')
xml.attribute("myAttribute", "myAttributeValue"); xml.setEmptyElement();
If your IQ does not contain any attributes or child elements (besidesExtensionElement
s), consider sub-classingSimpleIQ
instead.- Parameters:
xml
- a pre-created builder which already has the child element and the 'xmlns' attribute set.- Returns:
- the build to create the IQ child content.
-
createResultIQ
Convenience method to create a new emptyIQ.Type.result
IQ based on aIQ.Type.get
orIQ.Type.set
IQ. The new stanza will be initialized with:- The sender set to the recipient of the originating IQ.
- The recipient set to the sender of the originating IQ.
- The type set to
IQ.Type.result
. - The id set to the id of the originating IQ.
- No child element of the IQ element.
- Parameters:
request
- theIQ.Type.get
orIQ.Type.set
IQ packet.- Returns:
- a new
IQ.Type.result
IQ based on the originating IQ. - Throws:
IllegalArgumentException
- if the IQ stanza does not have a type ofIQ.Type.get
orIQ.Type.set
.
-
createErrorResponse
Convenience method to create a newIQ.Type.error
IQ based on aIQ.Type.get
orIQ.Type.set
IQ. The new stanza will be initialized with:- The sender set to the recipient of the originating IQ.
- The recipient set to the sender of the originating IQ.
- The type set to
IQ.Type.error
. - The id set to the id of the originating IQ.
- The child element contained in the associated originating IQ.
- The provided
XMPPError
.
- Parameters:
request
- theIQ.Type.get
orIQ.Type.set
IQ packet.error
- the error to associate with the created IQ packet.- Returns:
- a new
IQ.Type.error
IQ based on the originating IQ. - Throws:
IllegalArgumentException
- if the IQ stanza does not have a type ofIQ.Type.get
orIQ.Type.set
.
-
createErrorResponse
-