Class DataForm

java.lang.Object
org.jivesoftware.smackx.xdata.packet.DataForm
All Implemented Interfaces:
Element, ExtensionElement, NamedElement, XmlElement, XmlLangElement

public final class DataForm extends Object implements 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 Details

  • Method Details

    • 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 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

      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

      Returns the fields that will be returned from a search.
      Returns:
      fields that will be returned from a search.
    • getItems

      Returns a List of the items returned from a search.
      Returns:
      a List of the items returned from a search.
    • 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(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(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

      Description copied from interface: NamedElement
      Returns the root element name.
      Specified by:
      getElementName in interface NamedElement
      Returns:
      the element name.
    • getNamespace

      public String getNamespace()
      Description copied from interface: XmlElement
      Returns the root element XML namespace.
      Specified by:
      getNamespace in interface XmlElement
      Returns:
      the namespace.
    • getExtensionElements

    • getFormType

      public 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

      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 XmlStringBuilder toXML(XmlEnvironment xmlEnvironment)
      Specified by:
      toXML in interface Element
    • asBuilder

    • from

      public static DataForm from(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(StanzaView stanzaView, 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(Collection<DataForm> dataForms, 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(Collection<DataForm> dataForms, 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
    • builder

      public static DataForm.Builder builder()
      Get a new data form builder with the form type set to DataForm.Type.submit.
      Returns:
      a new data form builder.
    • builder

      public static DataForm.Builder builder(DataForm.Type type)