Class ClassSchema
java.lang.Object
org.simpleframework.xml.core.ClassSchema
- All Implemented Interfaces:
Schema
The
Schema object is used to track which fields within
an object have been visited by a converter. This object is necessary
for processing Composite objects. In particular it is
necessary to keep track of which required nodes have been visited
and which have not, if a required not has not been visited then the
XML source does not match the XML class schema and serialization
must fail before processing any further.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final CallerThis is the pointer to the schema class replace method.private final DecoratorThis is the decorator associated with this schema object.private final InstantiatorThis is the instantiator used to create all object instances.private final booleanThis is used to specify whether the type is a primitive class.private final VersionThis is the version annotation for the XML class schema.private final SectionThis represents the XML section defined for the class schema.private final LabelThis is used to represent a text value within the schema.private final ClassThis is the type that this class schema is representing.private final LabelThis is the version label used to read the version attribute. -
Constructor Summary
ConstructorsConstructorDescriptionClassSchema(Scanner schema, Context context) Constructor for theSchemaobject. -
Method Summary
Modifier and TypeMethodDescriptionThis is used to acquire theCallerobject.This is used to acquire theDecoratorfor this.This is used to acquire the instantiator for the type.This is theVersionfor the scanned class.This is used to acquire theSectionthat defines the XML structure for this class schema.getText()This returns theLabelthat represents the text annotation for the scanned class.This returns theLabelthat represents the version annotation for the scanned class.booleanThis is used to determine whether the scanned class represents a primitive type.toString()This is used to acquire a description of the schema.
-
Field Details
-
factory
This is the instantiator used to create all object instances. -
decorator
This is the decorator associated with this schema object. -
section
This represents the XML section defined for the class schema. -
revision
This is the version annotation for the XML class schema. -
caller
This is the pointer to the schema class replace method. -
version
This is the version label used to read the version attribute. -
text
This is used to represent a text value within the schema. -
type
This is the type that this class schema is representing. -
primitive
private final boolean primitiveThis is used to specify whether the type is a primitive class.
-
-
Constructor Details
-
ClassSchema
Constructor for theSchemaobject. This is used to wrap the element and attribute XML annotations scanned from a class schema. The schema tracks all fields visited so that a converter can determine if all fields have been serialized.- Parameters:
schema- this contains all labels scanned from the classcontext- this is the context object for serialization- Throws:
Exception
-
-
Method Details
-
isPrimitive
public boolean isPrimitive()This is used to determine whether the scanned class represents a primitive type. A primitive type is a type that contains no XML annotations and so cannot be serialized with an XML form. Instead primitives a serialized using transformations.- Specified by:
isPrimitivein interfaceSchema- Returns:
- this returns true if no XML annotations were found
-
getInstantiator
This is used to acquire the instantiator for the type. This is used to create object instances based on the constructors that have been annotated. If no constructors have been annotated then this can be used to create default no argument instances.- Specified by:
getInstantiatorin interfaceSchema- Returns:
- this instantiator responsible for creating instances
-
getVersion
This returns theLabelthat represents the version annotation for the scanned class. Only a single version can exist within the class if more than one exists an exception is thrown. This will read only floating point types such as double.- Specified by:
getVersionin interfaceSchema- Returns:
- this returns the label used for reading the version
-
getRevision
This is theVersionfor the scanned class. It allows the deserialization process to be configured such that if the version is different from the schema class none of the fields and methods are required and unmatched elements and attributes will be ignored.- Specified by:
getRevisionin interfaceSchema- Returns:
- this returns the version of the class that is scanned
-
getDecorator
This is used to acquire theDecoratorfor 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.- Specified by:
getDecoratorin interfaceSchema- Returns:
- this returns the decorator associated with this
-
getCaller
This is used to acquire theCallerobject. This is used to call the callback methods within the object. If the object contains no callback methods then this will return an object that does not invoke any methods that are invoked. -
getSection
This is used to acquire theSectionthat defines the XML structure for this class schema. A section, is the section of XML that the class is represented within. A section contains all the elements and attributes defined for the class in a tree like structure.- Specified by:
getSectionin interfaceSchema- Returns:
- this returns the section defined for the schama
-
getText
This returns theLabelthat represents the text annotation for the scanned class. Only a single text annotation can be used per class, so this returns only a single label rather than aLabelMapobject. Also if this is not null then the elements label map will be empty. -
toString
-