Class TextListLabel

java.lang.Object
org.simpleframework.xml.core.TemplateLabel
org.simpleframework.xml.core.TextListLabel
All Implemented Interfaces:
Label

class TextListLabel extends TemplateLabel
The TextListLabel object is used to create a label that will create a converter used to read free text. Free text is text that exists between elements. An ElementListUnion can be declared to consume text that exists between the individual elements by declaring a Text annotation with it. In such a declaration unstructured text can be processed.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final String
    This is the empty value that is declared for the annotation.
    private final Label
    This is the element list union label that is declared with this.
    private final Text
    This is the text annotation declaration on the element list.
  • Constructor Summary

    Constructors
    Constructor
    Description
    TextListLabel(Label label, Text text)
    Constructor for the TextListLabel object.
  • Method Summary

    Modifier and Type
    Method
    Description
    This acquires the annotation associated with this label.
    This is used to acquire the contact object for this label.
    This method returns a Converter which can be used to convert an XML node into an object value and vice versa.
    This is used to acquire the Decorator for this.
    This is used to acquire the dependent class for this label.
    getEmpty(Context context)
    This is used to provide a configured empty value used when the annotated value is null.
    This is typically used to acquire the entry value as acquired from the annotation.
    This method is used to return an XPath expression that is used to represent the position of this label.
    This is the key used to represent this label.
    This is used to acquire the name of the element or attribute that is used by the class schema.
    This returns a Collection of element names.
    This is used to acquire the name of the element or attribute as taken from the annotation.
    This is used to acquire the path of the element or attribute that is used by the class schema.
    This returns a Collection of element paths.
    This acts as a convenience method used to determine the type of the field this represents.
    boolean
    This is used to determine if the label is a collection.
    boolean
    This is used to determine whether the annotation requires it and its children to be written as a CDATA block.
    boolean
    This is used to determine whether the label represents an inline XML entity.
    boolean
    Determines whether the XML attribute or element is required.
    boolean
    This is used to determine if an annotated list is a text list.
    This is used to create a string used to represent this text list label.

    Methods inherited from class org.simpleframework.xml.core.TemplateLabel

    getLabel, getType, isAttribute, isText, isUnion

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • empty

      private final String empty
      This is the empty value that is declared for the annotation.
    • label

      private final Label label
      This is the element list union label that is declared with this.
    • text

      private final Text text
      This is the text annotation declaration on the element list.
  • Constructor Details

    • TextListLabel

      public TextListLabel(Label label, Text text)
      Constructor for the TextListLabel object. This is used to create a label used for reading free text declared between the elements of an element list union. Such a label enables serialization and deserialization of unstructured XML.
      Parameters:
      label - this is the label that is declared with this
      text - this is the text annotation delcaration
  • Method Details

    • getDecorator

      public Decorator getDecorator() throws Exception
      This is used to acquire the Decorator for this. A decorator is an object that adds various details to the node without changing the overall structure of the node. For example comments and namespaces can be added to the node with a decorator as they do not affect the deserialization.
      Returns:
      this returns the decorator associated with this
      Throws:
      Exception
    • getNames

      public String[] getNames() throws Exception
      This returns a Collection of element names. This will typically contain both the name and path of the label. However, if this is a union it can contain many names and paths. This method should never return null.
      Specified by:
      getNames in interface Label
      Overrides:
      getNames in class TemplateLabel
      Returns:
      this returns the names of each of the elements
      Throws:
      Exception
    • getPaths

      public String[] getPaths() throws Exception
      This returns a Collection of element paths. This will typically contain only the path of the label, which is composed using the Path annotation and the name of the label. However, if this is a union it can contain many paths. This method should never return null.
      Specified by:
      getPaths in interface Label
      Overrides:
      getPaths in class TemplateLabel
      Returns:
      this returns the names of each of the elements
      Throws:
      Exception
    • getEmpty

      public String getEmpty(Context context) throws Exception
      This is used to provide a configured empty value used when the annotated value is null. This ensures that XML can be created with required details regardless of whether values are null or not. It also provides a means for sensible default values.
      Parameters:
      context - this is the context object for the serialization
      Returns:
      this returns the string to use for default values
      Throws:
      Exception
    • getConverter

      public Converter getConverter(Context context) throws Exception
      This method returns a Converter which can be used to convert an XML node into an object value and vice versa. The converter requires only the context object in order to perform serialization or deserialization of the provided XML node.
      Parameters:
      context - this is the context object for the serialization
      Returns:
      this returns an object that is used for conversion
      Throws:
      Exception
    • getName

      public String getName() throws Exception
      This is used to acquire the name of the element or attribute that is used by the class schema. The name is determined by checking for an override within the annotation. If it contains a name then that is used, if however the annotation does not specify a name the the field or method name is used instead.
      Returns:
      returns the name that is used for the XML property
      Throws:
      Exception
    • getPath

      public String getPath() throws Exception
      This is used to acquire the path of the element or attribute that is used by the class schema. The path is determined by acquiring the XPath expression and appending the name of the label to form a fully qualified path.
      Returns:
      returns the path that is used for the XML property
      Throws:
      Exception
    • getExpression

      public Expression getExpression() throws Exception
      This method is used to return an XPath expression that is used to represent the position of this label. If there is no XPath expression associated with this then an empty path is returned. This will never return a null expression.
      Returns:
      the XPath expression identifying the location
      Throws:
      Exception
    • getDependent

      public Type getDependent() throws Exception
      This is used to acquire the dependent class for this label. This returns null as there are no dependents to the element annotation as it can only hold primitives with no dependents.
      Specified by:
      getDependent in interface Label
      Overrides:
      getDependent in class TemplateLabel
      Returns:
      this is used to return the dependent type of null
      Throws:
      Exception
    • getEntry

      public String getEntry() throws Exception
      This is typically used to acquire the entry value as acquired from the annotation. However given that the annotation this represents does not have a entry attribute this will always provide a null value for the entry string.
      Specified by:
      getEntry in interface Label
      Overrides:
      getEntry in class TemplateLabel
      Returns:
      this will always return null for the entry value
      Throws:
      Exception
    • getKey

      public Object getKey() throws Exception
      This is the key used to represent this label. The key is used to store the parameter in hash containers. Typically the key is generated from the paths associated with the label.
      Specified by:
      getKey in interface Label
      Overrides:
      getKey in class TemplateLabel
      Returns:
      this is the key used to represent the label
      Throws:
      Exception
    • getAnnotation

      public Annotation getAnnotation()
      This acquires the annotation associated with this label. This is typically the annotation acquired from the field or method. However, in the case of unions this will return the actual annotation within the union group that this represents.
      Returns:
      this returns the annotation that this represents
    • getContact

      public Contact getContact()
      This is used to acquire the contact object for this label. The contact retrieved can be used to set any object or primitive that has been deserialized, and can also be used to acquire values to be serialized in the case of object persistence. All contacts that are retrieved from this method will be accessible.
      Returns:
      returns the field that this label is representing
    • getType

      public Class getType()
      This acts as a convenience method used to determine the type of the field this represents. This is used when an object is written to XML. It determines whether a class attribute is required within the serialized XML element, that is, if the class returned by this is different from the actual value of the object to be serialized then that type needs to be remembered.
      Returns:
      this returns the type of the field class
    • getOverride

      public String getOverride()
      This is used to acquire the name of the element or attribute as taken from the annotation. If the element or attribute explicitly specifies a name then that name is used for the XML element or attribute used. If however no overriding name is provided then the method or field is used for the name.
      Returns:
      returns the name of the annotation for the contact
    • isData

      public boolean isData()
      This is used to determine whether the annotation requires it and its children to be written as a CDATA block. This is done when a primitive or other such element requires a text value and that value needs to be encapsulated within a CDATA block.
      Returns:
      this returns true if the element requires CDATA
    • isRequired

      public boolean isRequired()
      Determines whether the XML attribute or element is required. This ensures that if an XML element is missing from a document that deserialization can continue. Also, in the process of serialization, if a value is null it does not need to be written to the resulting XML document.
      Returns:
      true if the label represents a some required data
    • isCollection

      public boolean isCollection()
      This is used to determine if the label is a collection. If the label represents a collection then any original assignment to the field or method can be written to without the need to create a new collection. This allows obscure collections to be used and also allows initial entries to be maintained.
      Specified by:
      isCollection in interface Label
      Overrides:
      isCollection in class TemplateLabel
      Returns:
      true if the label represents a collection value
    • isInline

      public boolean isInline()
      This is used to determine whether the label represents an inline XML entity. The ElementList annotation and the Text annotation represent inline items. This means that they contain no containing element and so can not specify overrides or special attributes.
      Specified by:
      isInline in interface Label
      Overrides:
      isInline in class TemplateLabel
      Returns:
      this returns true if the annotation is inline
    • isTextList

      public boolean isTextList()
      This is used to determine if an annotated list is a text list. A text list is a list of elements that also accepts free text. Typically this will be an element list union that will allow unstructured XML such as XHTML to be parsed.
      Specified by:
      isTextList in interface Label
      Overrides:
      isTextList in class TemplateLabel
      Returns:
      returns true if the label represents a text list
    • toString

      public String toString()
      This is used to create a string used to represent this text list label. This will basically create a string representing the other label in addition to the Text label.
      Specified by:
      toString in interface Label
      Overrides:
      toString in class Object
      Returns:
      this is used to build a string for the list label