Class DataForm

  • All Implemented Interfaces:
    org.jivesoftware.smack.packet.Element, org.jivesoftware.smack.packet.ExtensionElement, org.jivesoftware.smack.packet.FullyQualifiedElement, org.jivesoftware.smack.packet.NamedElement, org.jivesoftware.smack.packet.XmlLangElement

    public final class DataForm
    extends java.lang.Object
    implements org.jivesoftware.smack.packet.ExtensionElement
    Represents a form that could be use for gathering data as well as for reporting data returned from a search.

    Note that unlike many other things in XMPP, the order of the form fields is actually Important in data forms.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ELEMENT  
      static java.lang.String NAMESPACE  
      static javax.xml.namespace.QName QNAME  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      DataForm.Builder asBuilder()  
      static DataForm.Builder builder()
      Get a new data form builder with the form type set to DataForm.Type.submit.
      static DataForm.Builder builder​(DataForm.Type type)  
      static DataForm from​(java.util.Collection<DataForm> dataForms, java.lang.String formType)
      Return the first matching data form with the given form type from the given collection of data forms.
      static DataForm from​(org.jivesoftware.smack.packet.StanzaView stanzaView)
      Get data form from a stanza.
      static DataForm from​(org.jivesoftware.smack.packet.StanzaView stanzaView, java.lang.String formType)
      Get the data form with the given form type from a stanza view.
      java.lang.String getElementName()  
      java.util.List<org.jivesoftware.smack.packet.Element> getExtensionElements()  
      FormField getField​(java.lang.String fieldName)
      Return the form field with the given variable name or null.
      java.util.List<FormField> getFields()
      Returns a List of the fields that are part of the form.
      java.lang.String getFormType()
      Return the form type from the hidden form type field.
      TextSingleFormField getHiddenFormTypeField()
      Returns the hidden FORM_TYPE field or null if this data form has none.
      java.util.List<java.lang.String> getInstructions()
      Returns a List of the list of instructions that explain how to fill out the form and what the form is about.
      java.util.List<DataForm.Item> getItems()
      Returns a List of the items returned from a search.
      java.lang.String getNamespace()  
      DataForm.ReportedData getReportedData()
      Returns the fields that will be returned from a search.
      java.lang.String getTitle()
      Returns the description of the data.
      DataForm.Type getType()
      Returns the meaning of the data within the context.
      boolean hasField​(java.lang.String fieldName)
      Check if a form field with the given variable name exists.
      boolean hasHiddenFormTypeField()
      Returns true if this DataForm has at least one FORM_TYPE field which is hidden.
      static DataForm remove​(java.util.Collection<DataForm> dataForms, java.lang.String formType)
      Remove the first matching data form with the given form type from the given collection.
      org.jivesoftware.smack.util.XmlStringBuilder toXML​(org.jivesoftware.smack.packet.XmlEnvironment xmlEnvironment)  
      • 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.Element

        toXML, toXML
      • Methods inherited from interface org.jivesoftware.smack.packet.FullyQualifiedElement

        getLanguage, getQName
    • Field Detail

      • QNAME

        public static final javax.xml.namespace.QName QNAME
    • Method Detail

      • getType

        public DataForm.Type getType()
        Returns the meaning of the data within the context. The data could be part of a form to fill out, a form submission or data results.
        Returns:
        the form's type.
      • getTitle

        public java.lang.String getTitle()
        Returns the description of the data. It is similar to the title on a web page or an X window. You can put a <title/> on either a form to fill out, or a set of data results.
        Returns:
        description of the data.
      • getInstructions

        public java.util.List<java.lang.String> getInstructions()
        Returns a List of the list of instructions that explain how to fill out the form and what the form is about. The dataform could include multiple instructions since each instruction could not contain newlines characters. Join the instructions together in order to show them to the user.
        Returns:
        a List of the list of instructions that explain how to fill out the form.
      • getReportedData

        public DataForm.ReportedData getReportedData()
        Returns the fields that will be returned from a search.
        Returns:
        fields that will be returned from a search.
      • getItems

        public java.util.List<DataForm.Item> getItems()
        Returns a List of the items returned from a search.
        Returns:
        a List of the items returned from a search.
      • getFields

        public java.util.List<FormField> getFields()
        Returns a List of the fields that are part of the form.
        Returns:
        a List of the fields that are part of the form.
      • getField

        public FormField getField​(java.lang.String fieldName)
        Return the form field with the given variable name or null.
        Parameters:
        fieldName - the name of the field (the value of the 'var' (variable) attribute)
        Returns:
        the form field or null.
        Since:
        4.1
      • hasField

        public boolean hasField​(java.lang.String fieldName)
        Check if a form field with the given variable name exists.
        Parameters:
        fieldName - the name of the field.
        Returns:
        true if a form field with the variable name exists, false otherwise.
        Since:
        4.2
      • getElementName

        public java.lang.String getElementName()
        Specified by:
        getElementName in interface org.jivesoftware.smack.packet.NamedElement
      • getNamespace

        public java.lang.String getNamespace()
        Specified by:
        getNamespace in interface org.jivesoftware.smack.packet.FullyQualifiedElement
      • getExtensionElements

        public java.util.List<org.jivesoftware.smack.packet.Element> getExtensionElements()
      • getFormType

        public java.lang.String getFormType()
        Return the form type from the hidden form type field.
        Returns:
        the form type or null if this form has none set.
        Since:
        4.4.0
      • getHiddenFormTypeField

        public TextSingleFormField getHiddenFormTypeField()
        Returns the hidden FORM_TYPE field or null if this data form has none.
        Returns:
        the hidden FORM_TYPE field or null.
        Since:
        4.1
      • hasHiddenFormTypeField

        public boolean hasHiddenFormTypeField()
        Returns true if this DataForm has at least one FORM_TYPE field which is hidden. This method is used for sanity checks.
        Returns:
        true if there is at least one field which is hidden.
      • toXML

        public org.jivesoftware.smack.util.XmlStringBuilder toXML​(org.jivesoftware.smack.packet.XmlEnvironment xmlEnvironment)
        Specified by:
        toXML in interface org.jivesoftware.smack.packet.Element
      • from

        public static DataForm from​(org.jivesoftware.smack.packet.StanzaView stanzaView)
        Get data form from a stanza.
        Parameters:
        stanzaView - the stanza to get data form from.
        Returns:
        the DataForm or null
      • from

        public static DataForm from​(org.jivesoftware.smack.packet.StanzaView stanzaView,
                                    java.lang.String formType)
        Get the data form with the given form type from a stanza view.
        Parameters:
        stanzaView - the stanza view to retrieve the data form from
        formType - the form type
        Returns:
        the retrieved data form or null if there is no matching one
        Since:
        4.4.0
      • from

        public static DataForm from​(java.util.Collection<DataForm> dataForms,
                                    java.lang.String formType)
        Return the first matching data form with the given form type from the given collection of data forms.
        Parameters:
        dataForms - the collection of data forms
        formType - the form type to match for
        Returns:
        the first matching data form or null if there is none
        Since:
        4.4.0
      • remove

        public static DataForm remove​(java.util.Collection<DataForm> dataForms,
                                      java.lang.String formType)
        Remove the first matching data form with the given form type from the given collection.
        Parameters:
        dataForms - the collection of data forms
        formType - the form type to match for
        Returns:
        the removed data form or null if there was none removed
        Since:
        4.4.0