Package org.simpleframework.xml.core
Class DefaultDetail
- java.lang.Object
-
- org.simpleframework.xml.core.DefaultDetail
-
- All Implemented Interfaces:
Detail
class DefaultDetail extends java.lang.Object implements Detail
ThisDefaultDetail
object is used to create a detail object that contains a default access override. Default overrides can be used to scan a class with no annotations and treat it as if it was annotated with theDefault
annotation. This allows external classes to be serialized without modification.
-
-
Field Summary
Fields Modifier and Type Field Description private DefaultType
access
This is the default access type to be used with this detail.private Detail
detail
This is the original detail object that is to be delegated to.
-
Constructor Summary
Constructors Constructor Description DefaultDetail(Detail detail, DefaultType access)
Constructor for theDefaultDetail
object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DefaultType
getAccess()
This returns theDefault
annotation access type that has been specified by this.java.lang.annotation.Annotation[]
getAnnotations()
This returns the annotations that have been declared for this type.java.lang.reflect.Constructor[]
getConstructors()
This returns the constructors that have been declared for this type.java.util.List<FieldDetail>
getFields()
This returns a list of the fields that belong to this type.java.util.List<MethodDetail>
getMethods()
This returns a list of the methods that belong to this type.java.lang.String
getName()
This returns the name of the class represented by this detail.Namespace
getNamespace()
This returns theNamespace
annotation that was declared on the type.NamespaceList
getNamespaceList()
This returns theNamespaceList
annotation that was declared on the type.Order
getOrder()
This returns the order annotation used to determine the order of serialization of attributes and elements.DefaultType
getOverride()
This returns theDefault
annotation access type that has been specified by this.Root
getRoot()
This returns theRoot
annotation for the class.java.lang.Class
getSuper()
This is used to acquire the super type for the class that is represented by this detail.java.lang.Class
getType()
This returns the type represented by this detail.boolean
isInstantiable()
This is used to determine if the class is an inner class.boolean
isPrimitive()
This is used to determine whether this detail represents a primitive type.boolean
isRequired()
This is used to determine if the generated annotations are required or not.boolean
isStrict()
This method is used to determine whether strict mappings are required.java.lang.String
toString()
This is used to return a string representation of the detail.
-
-
-
Field Detail
-
access
private final DefaultType access
This is the default access type to be used with this detail.
-
detail
private final Detail detail
This is the original detail object that is to be delegated to.
-
-
Constructor Detail
-
DefaultDetail
public DefaultDetail(Detail detail, DefaultType access)
Constructor for theDefaultDetail
object. This is used to create a description of a class and also provide a default access override type. This is used when we want to scan a class with no annotations and extract default details.- Parameters:
detail
- this is the detail that is delegated toaccess
- this is the access type override used
-
-
Method Detail
-
isStrict
public boolean isStrict()
This method is used to determine whether strict mappings are required. Strict mapping means that all labels in the class schema must match the XML elements and attributes in the source XML document. When strict mapping is disabled, then XML elements and attributes that do not exist in the schema class will be ignored without breaking the parser.
-
isRequired
public boolean isRequired()
This is used to determine if the generated annotations are required or not. By default generated parameters are required. Setting this to false means that null values are accepted by all defaulted fields or methods depending on the type.- Specified by:
isRequired
in interfaceDetail
- Returns:
- this is used to determine if defaults are required
-
isInstantiable
public boolean isInstantiable()
This is used to determine if the class is an inner class. If the class is a inner class and not static then this returns false. Only static inner classes can be instantiated using reflection as they do not require a "this" argument.- Specified by:
isInstantiable
in interfaceDetail
- Returns:
- this returns true if the class is a static inner
-
isPrimitive
public boolean isPrimitive()
This is used to determine whether this detail represents a primitive type. A primitive type is any type that does not extendObject
, examples are int, long and double.- Specified by:
isPrimitive
in interfaceDetail
- Returns:
- this returns true if no XML annotations were found
-
getSuper
public java.lang.Class getSuper()
This is used to acquire the super type for the class that is represented by this detail. If the super type for the class isObject
then this will return null.
-
getType
public java.lang.Class getType()
This returns the type represented by this detail. The type is the class that has been scanned for annotations, methods and fields. All super types of this are represented in the detail.
-
getName
public java.lang.String getName()
This returns the name of the class represented by this detail. The name is either the name as specified in the last foundRoot
annotation, or if a name was not specified within the discovered root then the Java Bean class name of the last class annotated with a root annotation.
-
getRoot
public Root getRoot()
This returns theRoot
annotation for the class. The root determines the type of deserialization that is to be performed and also contains the name of the root element.
-
getOrder
public Order getOrder()
This returns the order annotation used to determine the order of serialization of attributes and elements. The order is a class level annotation that can be used only once per class XML schema. If none exists then this will return null. of the class processed by this scanner.
-
getAccess
public DefaultType getAccess()
This returns theDefault
annotation access type that has been specified by this. If no default annotation has been declared on the type then this will return null.
-
getOverride
public DefaultType getOverride()
This returns theDefault
annotation access type that has been specified by this. If no default annotation has been declared on the type then this will return null.- Specified by:
getOverride
in interfaceDetail
- Returns:
- this returns the default access type for this type
-
getNamespace
public Namespace getNamespace()
This returns theNamespace
annotation that was declared on the type. If no annotation has been declared on the type this will return null as not belonging to any.- Specified by:
getNamespace
in interfaceDetail
- Returns:
- this returns the namespace this type belongs to, if any
-
getNamespaceList
public NamespaceList getNamespaceList()
This returns theNamespaceList
annotation that was declared on the type. A list of namespaces are used to simply declare the namespaces without specifically making the type belong to any of the declared namespaces.- Specified by:
getNamespaceList
in interfaceDetail
- Returns:
- this returns the namespace declarations, if any
-
getMethods
public java.util.List<MethodDetail> getMethods()
This returns a list of the methods that belong to this type. The methods here do not include any methods from the super types and simply provides a means of caching method data.- Specified by:
getMethods
in interfaceDetail
- Returns:
- returns the list of methods declared for the type
-
getFields
public java.util.List<FieldDetail> getFields()
This returns a list of the fields that belong to this type. The fields here do not include any fields from the super types and simply provides a means of caching method data.
-
getAnnotations
public java.lang.annotation.Annotation[] getAnnotations()
This returns the annotations that have been declared for this type. It is preferable to acquire the declared annotations from this method as they are cached. Older versions of some runtime environments, particularly Android, are slow at this.- Specified by:
getAnnotations
in interfaceDetail
- Returns:
- this returns the annotations associated with this
-
getConstructors
public java.lang.reflect.Constructor[] getConstructors()
This returns the constructors that have been declared for this type. It is preferable to acquire the declared constructors from this method as they are cached. Older versions of some runtime environments, particularly Android, are slow at this.- Specified by:
getConstructors
in interfaceDetail
- Returns:
- this returns the constructors associated with this
-
toString
public java.lang.String toString()
This is used to return a string representation of the detail. The string returned from this is the same that is returned from thetoString
of the type represented.- Overrides:
toString
in classjava.lang.Object
- Returns:
- this returns the string representation of the type
-
-