Package org.simpleframework.xml.core
Class TextLabel
java.lang.Object
org.simpleframework.xml.core.TemplateLabel
org.simpleframework.xml.core.TextLabel
- All Implemented Interfaces:
Label
The
TextLabel
represents a label that is used to get
a converter for a text entry within an XML element. This label is
used to convert an XML text entry into a primitive value such as
a string or an integer, this will throw an exception if the field
value does not represent a primitive object.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Contact
The contact that this annotation label represents.private boolean
This is used to determine if the attribute is data.private Introspector
This represents the signature of the annotated contact.private String
This is the default value to use if the real value is null.private Text
References the annotation that was used by the contact.private Expression
This is the path that is used to represent this text.private boolean
This is used to determine if the attribute is required.private Class
This is the type of the class that the field references. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionThis acquires the annotation associated with this label.This is used to acquire the contact object for this label.getConverter
(Context context) Creates a converter that can be used to transform an XML node to an object and vice versa.This is used to acquire theDecorator
for this.This is used to provide a configured empty value used when the annotated value is null.This method is used to return an XPath expression that is used to represent the position of this label.getName()
This is used to acquire the name of the element or attribute that is used by the class schema.This is used to acquire the name of the element or attribute as taken from the annotation.getPath()
This is used to acquire the path of the element or attribute that is used by the class schema.getType()
This acts as a convenience method used to determine the type of contact this represents.boolean
isData()
This is used to determine if theText
method or field is to have its value written as a CDATA block.boolean
isInline()
This method is used by the deserialization process to check to see if an annotation is inline or not.boolean
This is used to determine whether the XML element is required.boolean
isText()
This is used to determine if the label represents text.toString()
This is used to describe the annotation and method or field that this label represents.Methods inherited from class org.simpleframework.xml.core.TemplateLabel
getDependent, getEntry, getKey, getLabel, getNames, getPaths, getType, isAttribute, isCollection, isTextList, isUnion
-
Field Details
-
detail
This represents the signature of the annotated contact. -
path
This is the path that is used to represent this text. -
contact
The contact that this annotation label represents. -
label
References the annotation that was used by the contact. -
type
This is the type of the class that the field references. -
empty
This is the default value to use if the real value is null. -
required
private boolean requiredThis is used to determine if the attribute is required. -
data
private boolean dataThis is used to determine if the attribute is data.
-
-
Constructor Details
-
TextLabel
Constructor for theTextLabel
object. This is used to create a label that can convert a XML node into a primitive value from an XML element text value.- Parameters:
contact
- this is the contact this label representslabel
- this is the annotation for the contactformat
- this is the format used for this label
-
-
Method Details
-
getDecorator
This is used to acquire theDecorator
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
-
getConverter
Creates a converter that can be used to transform an XML node to an object and vice versa. The converter created will handles only XML text and requires the context object to be provided.- Parameters:
context
- this is the context object used for serialization- Returns:
- this returns a converter for serializing XML elements
- Throws:
Exception
-
getEmpty
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
-
getPath
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
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
-
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
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 contact that this label is representing
-
getName
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
-
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
-
getType
This acts as a convenience method used to determine the type of contact this represents. This is used when an object is written to XML. It determines whether aclass
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 contact class
-
isRequired
public boolean isRequired()This is used to determine whether the XML 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
-
isData
public boolean isData()This is used to determine if theText
method or field is to have its value written as a CDATA block. This will set the output node to CDATA mode if this returns true, if it is false data will be written according to an inherited mode. By default inherited mode results in escaped XML text.- Returns:
- this returns true if the text is to be a CDATA block
-
isText
public boolean isText()This is used to determine if the label represents text. If a label represents text it typically does not have a name, instead the empty string represents the name. Also text labels can not exist with other text labels, or elements.- Specified by:
isText
in interfaceLabel
- Overrides:
isText
in classTemplateLabel
- Returns:
- this returns true if this label represents text
-
isInline
public boolean isInline()This method is used by the deserialization process to check to see if an annotation is inline or not. If an annotation represents an inline XML entity then the deserialization and serialization process ignores overrides and special attributes. By default all text entities are inline.- Specified by:
isInline
in interfaceLabel
- Overrides:
isInline
in classTemplateLabel
- Returns:
- this always returns true for text labels
-
toString
This is used to describe the annotation and method or field that this label represents. This is used to provide error messages that can be used to debug issues that occur when processing a method. This will provide enough information such that the problem can be isolated correctly.
-