Class Bind

  • All Implemented Interfaces:
    Element, FullyQualifiedElement, IqView, NamedElement, StanzaView, TopLevelStreamElement, XmlLangElement

    public final class Bind
    extends IQ
    IQ stanza used by Smack to bind a resource and to obtain the jid assigned by the server. There are two ways to bind a resource. One is simply sending an empty Bind stanza where the server will assign a new resource for this connection. The other option is to set a desired resource but the server may return a modified version of the sent resource.

    For more information refer to the following link.

    • Method Detail

      • getIQChildElementBuilder

        protected IQ.IQChildElementXmlStringBuilder getIQChildElementBuilder​(IQ.IQChildElementXmlStringBuilder xml)
        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.