public abstract class FormField
extends java.lang.Object
implements org.jivesoftware.smack.packet.FullyQualifiedElement
Fields have a name, which is stored in the 'var' attribute of the field's XML representation. Field instances of all types, except of type "fixed" must have a name.
| Modifier and Type | Class and Description |
|---|---|
static class |
FormField.Builder<F extends FormField,B extends FormField.Builder<?,?>> |
static class |
FormField.Description |
static class |
FormField.Option
Represents the available options of a
ListSingleFormField and ListMultiFormField. |
static class |
FormField.Required |
static class |
FormField.Type
Form Field Types as defined in XEP-4 § 3.3.
|
static class |
FormField.Value |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
ELEMENT |
protected java.util.List<org.jivesoftware.smack.packet.FullyQualifiedElement> |
extraXmlChildElements |
static java.lang.String |
FORM_TYPE
The constant String "FORM_TYPE".
|
static java.lang.String |
NAMESPACE |
static javax.xml.namespace.QName |
QNAME |
| Modifier | Constructor and Description |
|---|---|
protected |
FormField(FormField.Builder<?,?> builder) |
| Modifier and Type | Method and Description |
|---|---|
TextSingleFormField |
asHiddenFormTypeFieldIfPossible() |
static BooleanFormField.Builder |
booleanBuilder(java.lang.String fieldName) |
static TextSingleFormField.Builder |
builder(java.lang.String fieldName) |
static TextSingleFormField |
buildHiddenFormType(java.lang.String formType) |
boolean |
equals(java.lang.Object obj) |
static TextSingleFormField.Builder |
fixedBuilder() |
static TextSingleFormField.Builder |
fixedBuilder(java.lang.String fieldName) |
java.lang.String |
getDescription()
Returns a description that provides extra clarification about the question.
|
java.lang.String |
getElementName() |
java.lang.String |
getFieldName()
Returns the field's name, also known as the variable name in case this is an filled out answer form.
|
java.lang.String |
getFirstValue()
Returns the first value of this form field or
null. |
java.util.Date |
getFirstValueAsDate()
Parses the first value of this form field as XEP-0082 date/time format and returns a date instance or
null. |
FormFieldChildElement |
getFormFieldChildElement(javax.xml.namespace.QName qname) |
java.util.List<FormFieldChildElement> |
getFormFieldChildElements() |
java.util.List<FormFieldChildElement> |
getFormFieldChildElements(javax.xml.namespace.QName qname) |
java.lang.String |
getLabel()
Returns the label of the question which should give enough information to the user to
fill out the form.
|
java.lang.String |
getNamespace() |
javax.xml.namespace.QName |
getQName() |
java.util.List<java.lang.CharSequence> |
getRawValueCharSequences() |
abstract java.util.List<FormField.Value> |
getRawValues() |
FormField.Type |
getType()
Returns an indicative of the format for the data to answer.
|
java.util.List<? extends java.lang.CharSequence> |
getValues()
Returns a List of the default values of the question if the question is part
of a form to fill out.
|
java.util.List<java.lang.String> |
getValuesAsString()
Returns the values a String.
|
java.lang.String |
getVariable()
Deprecated.
use
getFieldName() instead. |
int |
hashCode() |
boolean |
hasValueSet() |
static TextSingleFormField.Builder |
hiddenBuilder(java.lang.String fieldName) |
<F extends FormField> |
ifPossibleAs(java.lang.Class<F> formFieldClass) |
<F extends FormField> |
ifPossibleAsOrThrow(java.lang.Class<F> formFieldClass) |
boolean |
isRequired()
Returns true if the question must be answered in order to complete the questionnaire.
|
static JidMultiFormField.Builder |
jidMultiBuilder(java.lang.String fieldName) |
static JidSingleFormField.Builder |
jidSingleBuilder(java.lang.String fieldName) |
static ListMultiFormField.Builder |
listMultiBuilder(java.lang.String fieldName) |
static ListSingleFormField.Builder |
listSingleBuilder(java.lang.String fieldName) |
protected void |
populateExtraXmlChildElements()
Populate @{link
extraXmlChildElements}. |
static TextMultiFormField.Builder |
textMultiBuilder(java.lang.String fieldName) |
static TextSingleFormField.Builder |
textPrivateBuilder(java.lang.String fieldName) |
static TextSingleFormField.Builder |
textSingleBuilder(java.lang.String fieldName) |
org.jivesoftware.smack.util.XmlStringBuilder |
toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace) |
org.jivesoftware.smack.util.XmlStringBuilder |
toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace,
boolean includeType) |
public static final java.lang.String ELEMENT
public static final java.lang.String NAMESPACE
public static final javax.xml.namespace.QName QNAME
public static final java.lang.String FORM_TYPE
protected transient java.util.List<org.jivesoftware.smack.packet.FullyQualifiedElement> extraXmlChildElements
protected FormField(FormField.Builder<?,?> builder)
public java.lang.String getDescription()
If the question is of type FIXED then the description should remain empty.
public java.lang.String getLabel()
public boolean isRequired()
public FormField.Type getType()
FormField.Typepublic java.util.List<? extends java.lang.CharSequence> getValues()
public abstract java.util.List<FormField.Value> getRawValues()
public final java.util.List<java.lang.CharSequence> getRawValueCharSequences()
public boolean hasValueSet()
public java.util.List<java.lang.String> getValuesAsString()
getValues() whenever possible instead of this
method.getValues()public java.lang.String getFirstValue()
null.nullpublic java.util.Date getFirstValueAsDate()
throws java.text.ParseException
null.java.text.ParseException - if parsing fails.@Deprecated public java.lang.String getVariable()
getFieldName() instead.According to XEP-4 § 3.2 the variable name (the 'var' attribute) "uniquely identifies the field in the context of the form" (if the field is not of type 'fixed', in which case the field "MAY possess a 'var' attribute")
public java.lang.String getFieldName()
According to XEP-4 § 3.2 the variable name (the 'var' attribute) "uniquely identifies the field in the context of the form" (if the field is not of type 'fixed', in which case the field "MAY possess a 'var' attribute")
public FormFieldChildElement getFormFieldChildElement(javax.xml.namespace.QName qname)
public java.util.List<FormFieldChildElement> getFormFieldChildElements(javax.xml.namespace.QName qname)
public java.util.List<FormFieldChildElement> getFormFieldChildElements()
public java.lang.String getElementName()
getElementName in interface org.jivesoftware.smack.packet.NamedElementpublic java.lang.String getNamespace()
getNamespace in interface org.jivesoftware.smack.packet.FullyQualifiedElementpublic javax.xml.namespace.QName getQName()
getQName in interface org.jivesoftware.smack.packet.FullyQualifiedElementprotected void populateExtraXmlChildElements()
extraXmlChildElements}. Note that this method may be overridden by subclasses.public final org.jivesoftware.smack.util.XmlStringBuilder toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace)
toXML in interface org.jivesoftware.smack.packet.Elementpublic final org.jivesoftware.smack.util.XmlStringBuilder toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace,
boolean includeType)
public boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic static BooleanFormField.Builder booleanBuilder(java.lang.String fieldName)
public static TextSingleFormField.Builder fixedBuilder()
public static TextSingleFormField.Builder fixedBuilder(java.lang.String fieldName)
public static TextSingleFormField.Builder hiddenBuilder(java.lang.String fieldName)
public static JidMultiFormField.Builder jidMultiBuilder(java.lang.String fieldName)
public static JidSingleFormField.Builder jidSingleBuilder(java.lang.String fieldName)
public static ListMultiFormField.Builder listMultiBuilder(java.lang.String fieldName)
public static ListSingleFormField.Builder listSingleBuilder(java.lang.String fieldName)
public static TextMultiFormField.Builder textMultiBuilder(java.lang.String fieldName)
public static TextSingleFormField.Builder textPrivateBuilder(java.lang.String fieldName)
public static TextSingleFormField.Builder textSingleBuilder(java.lang.String fieldName)
public static TextSingleFormField.Builder builder(java.lang.String fieldName)
public static TextSingleFormField buildHiddenFormType(java.lang.String formType)
public <F extends FormField> F ifPossibleAs(java.lang.Class<F> formFieldClass)
public <F extends FormField> F ifPossibleAsOrThrow(java.lang.Class<F> formFieldClass)
public TextSingleFormField asHiddenFormTypeFieldIfPossible()