Class DataForm
- java.lang.Object
-
- org.jivesoftware.smackx.xdata.packet.DataForm
-
- All Implemented Interfaces:
Element,ExtensionElement,FullyQualifiedElement,NamedElement,XmlLangElement
public final class DataForm extends java.lang.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDataForm.Builderstatic classDataForm.ItemRepresents items of reported data.static classDataForm.ReportedDataRepresents the fields that will be returned from a search.static classDataForm.Type
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DataForm.BuilderasBuilder()static DataForm.Builderbuilder()Get a new data form builder with the form type set toDataForm.Type.submit.static DataForm.Builderbuilder(DataForm.Type type)static DataFormfrom(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 DataFormfrom(StanzaView stanzaView)Get data form from a stanza.static DataFormfrom(StanzaView stanzaView, java.lang.String formType)Get the data form with the given form type from a stanza view.java.lang.StringgetElementName()Returns the root element name.java.util.List<Element>getExtensionElements()FormFieldgetField(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.StringgetFormType()Return the form type from the hidden form type field.TextSingleFormFieldgetHiddenFormTypeField()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.StringgetNamespace()Returns the root element XML namespace.DataForm.ReportedDatagetReportedData()Returns the fields that will be returned from a search.java.lang.StringgetTitle()Returns the description of the data.DataForm.TypegetType()Returns the meaning of the data within the context.booleanhasField(java.lang.String fieldName)Check if a form field with the given variable name exists.booleanhasHiddenFormTypeField()Returns true if this DataForm has at least one FORM_TYPE field which is hidden.static DataFormremove(java.util.Collection<DataForm> dataForms, java.lang.String formType)Remove the first matching data form with the given form type from the given collection.XmlStringBuildertoXML(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.FullyQualifiedElement
getLanguage, getQName
-
-
-
-
Field Detail
-
NAMESPACE
public static final java.lang.String NAMESPACE
- See Also:
- Constant Field Values
-
ELEMENT
public static final java.lang.String ELEMENT
- See Also:
- Constant Field Values
-
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()
Description copied from interface:NamedElementReturns the root element name.- Specified by:
getElementNamein interfaceNamedElement- Returns:
- the element name.
-
getNamespace
public java.lang.String getNamespace()
Description copied from interface:FullyQualifiedElementReturns the root element XML namespace.- Specified by:
getNamespacein interfaceFullyQualifiedElement- Returns:
- the namespace.
-
getExtensionElements
public java.util.List<Element> getExtensionElements()
-
getFormType
public java.lang.String getFormType()
Return the form type from the hidden form type field.- Returns:
- the form type or
nullif 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 XmlStringBuilder toXML(XmlEnvironment xmlEnvironment)
-
asBuilder
public DataForm.Builder 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, 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 fromformType- the form type- Returns:
- the retrieved data form or
nullif 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 formsformType- the form type to match for- Returns:
- the first matching data form or
nullif 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 formsformType- the form type to match for- Returns:
- the removed data form or
nullif 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 toDataForm.Type.submit.- Returns:
- a new data form builder.
-
builder
public static DataForm.Builder builder(DataForm.Type type)
-
-