Class DiscoverInfo

All Implemented Interfaces:
Element, IqView, NamedElement, StanzaView, TopLevelStreamElement, XmlElement, XmlLangElement, DiscoverInfoView

public class DiscoverInfo extends IQ implements DiscoverInfoView
A DiscoverInfo IQ packet, which is used by XMPP clients to request and receive information to/from other XMPP entities.

The received information may contain one or more identities of the requested XMPP entity, and a list of supported features by the requested XMPP entity.

  • Field Details

  • Constructor Details

  • Method Details

    • getFeatures

      Description copied from interface: DiscoverInfoView
      Returns the discovered features of an XMPP entity.
      Specified by:
      getFeatures in interface DiscoverInfoView
      Returns:
      an unmodifiable list of the discovered features of an XMPP entity
    • getIdentities

      Description copied from interface: DiscoverInfoView
      Returns the discovered identities of an XMPP entity.
      Specified by:
      getIdentities in interface DiscoverInfoView
      Returns:
      an unmodifiable list of the discovered identities
    • hasIdentity

      public boolean hasIdentity(String category, String type)
      Returns true if this DiscoverInfo contains at least one Identity of the given category and type.
      Parameters:
      category - the category to look for.
      type - the type to look for.
      Returns:
      true if this DiscoverInfo contains a Identity of the given category and type.
    • getIdentities

      Returns all Identities of the given category and type of this DiscoverInfo.
      Parameters:
      category - category the category to look for.
      type - type the type to look for.
      Returns:
      a list of Identities with the given category and type.
    • getNode

      public String getNode()
      Description copied from interface: DiscoverInfoView
      Returns the node attribute that supplements the 'jid' attribute. A node is merely something that is associated with a JID and for which the JID can provide information.

      Node attributes SHOULD be used only when trying to provide or query information which is not directly addressable.

      Specified by:
      getNode in interface DiscoverInfoView
      Returns:
      the node attribute that supplements the 'jid' attribute
    • containsFeature

      public boolean containsFeature(CharSequence feature)
      Returns true if the specified feature is part of the discovered information.
      Parameters:
      feature - the feature to check
      Returns:
      true if the requests feature has been discovered
    • nullSafeContainsFeature

      public static boolean nullSafeContainsFeature(DiscoverInfo discoverInfo, CharSequence feature)
    • getIQChildElementBuilder

      Description copied from class: IQ
      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 by IQ.IQChildElementXmlStringBuilder after eventual existing ExtensionElements 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>
       
       
      the body of the 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')
       
       
      If your IQ only contains attributes and no child elements, i.e. it can be represented as empty element, then you can mark it as such.
       xml.attribute("myAttribute", "myAttributeValue");
       xml.setEmptyElement();
       
      If your IQ does not contain any attributes or child elements (besides ExtensionElements), consider sub-classing SimpleIQ instead.
      Specified by:
      getIQChildElementBuilder in class IQ
      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.
    • containsDuplicateIdentities

      public boolean containsDuplicateIdentities()
      Test if a DiscoverInfo response contains duplicate identities.
      Returns:
      true if duplicate identities where found, otherwise false
    • containsDuplicateFeatures

      public boolean containsDuplicateFeatures()
      Test if a DiscoverInfo response contains duplicate features.
      Returns:
      true if duplicate identities where found, otherwise false
    • asBuilder

    • builder

      public static DiscoverInfoBuilder builder(XMPPConnection connection)
    • builder

      public static DiscoverInfoBuilder builder(IqData iqData)
    • builder

      public static DiscoverInfoBuilder builder(String stanzaId)