Package org.simpleframework.xml.core
Class AttributeLabel
java.lang.Object
org.simpleframework.xml.core.TemplateLabel
org.simpleframework.xml.core.AttributeLabel
- All Implemented Interfaces:
Label
The
AttributeLabel
object is used convert any value
retrieved from an XML attribute to a primitive object. This is
also used to convert from a primitive object to an XML attribute
using the String.valueOf
method.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Decorator
This is the decorator that is associated with the attribute.private Introspector
This contains the details of the annotated contact object.private String
This is the default value to use if the real value is null.private Format
This is the format that is used to style the path.private Attribute
Represents the annotation used to label the field.private String
This is the name of the element for this label instance.private Expression
This is the path that is used to represent this attribute.private boolean
This is used to determine if the attribute is required.private Class
This is the type that the field object references. -
Constructor Summary
ConstructorsConstructorDescriptionAttributeLabel
(Contact contact, Attribute label, Format format) Constructor for theAttributeLabel
object. -
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 aConverter
that can convert an attribute to a primitive object.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 the contact this represents.boolean
This method is used to determine if the label represents an attribute.boolean
isData()
Because the attribute can contain only simple text values it is never required to specified as anything other than text.boolean
This is used to determine whether the attribute is required.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, isCollection, isInline, isText, isTextList, isUnion
-
Field Details
-
decorator
This is the decorator that is associated with the attribute. -
detail
This contains the details of the annotated contact object. -
path
This is the path that is used to represent this attribute. -
label
Represents the annotation used to label the field. -
format
This is the format that is used to style the path. -
type
This is the type that the field object references. -
name
This is the name of the element for this label instance. -
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.
-
-
Constructor Details
-
AttributeLabel
Constructor for theAttributeLabel
object. This is used to create a label that can convert from an object to an XML attribute and vice versa. This requires the annotation and contact extracted from the XML schema class.- Parameters:
contact
- this is the field from the XML schema classlabel
- represents the annotation for the fieldformat
- this is the format used to style the path
-
-
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 aConverter
that can convert an attribute to a primitive object. This requires the context object used for the current instance of XML serialization being performed.- Parameters:
context
- this is context object used for serialization- Returns:
- this returns an object that is used for conversion
- 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
-
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
- Throws:
Exception
-
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
-
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
-
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 persistance. All contacts that are retrieved from this method will be accessible.- Returns:
- returns the contact that this label is representing
-
getType
This acts as a convenience method used to determine the type of the contact this represents. This will be a primitive type of a primitive type from thejava.lang
primitives.- Returns:
- this returns the type of the contact class
-
isAttribute
public boolean isAttribute()This method is used to determine if the label represents an attribute. This is used to style the name so that elements are styled as elements and attributes are styled as required.- Specified by:
isAttribute
in interfaceLabel
- Overrides:
isAttribute
in classTemplateLabel
- Returns:
- this is used to determine if this is an attribute
-
isRequired
public boolean isRequired()This is used to determine whether the attribute is required. This ensures that if an attribute 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()Because the attribute can contain only simple text values it is never required to specified as anything other than text. Therefore this will always return false as CDATA does not apply to the attribute values.- Returns:
- this will always return false for XML attributes
-
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.
-