Class DiscoverItems

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

public class DiscoverItems extends IQ
A DiscoverItems IQ packet, which is used by XMPP clients to request and receive items associated with XMPP entities.

The items could also be queried in order to discover if they contain items inside. Some items may be addressable by its JID and others may require to be addressed by a JID and a node name.

  • Field Details

  • Constructor Details

  • Method Details

    • addItem

      public void addItem(DiscoverItems.Item item)
      Adds a new item to the discovered information.
      Parameters:
      item - the discovered entity's item
    • addItems

      public void addItems(Collection<DiscoverItems.Item> itemsToAdd)
      Adds a collection of items to the discovered information. Does nothing if itemsToAdd is null
      Parameters:
      itemsToAdd - TODO javadoc me please
    • getItems

      Returns the discovered items of the queried XMPP entity.
      Returns:
      an unmodifiable list of the discovered entity's items
    • getNode

      public String getNode()
      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.

      Returns:
      the node attribute that supplements the 'jid' attribute
    • setNode

      public void setNode(String node)
      Sets 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.

      Parameters:
      node - the node attribute that supplements the 'jid' attribute
    • 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.