Package org.exolab.castor.xml
Class MarshalFramework.InternalXMLClassDescriptor
java.lang.Object
org.exolab.castor.xml.MarshalFramework.InternalXMLClassDescriptor
- All Implemented Interfaces:
NatureExtendable
,PropertyHolder
,ClassDescriptor
,XMLClassDescriptor
- Enclosing class:
- MarshalFramework
An internal implementation of XMLClassDescriptor used by
the Unmarshaller and Marshaller...
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
InternalXMLClassDescriptor
(XMLClassDescriptor classDesc) Creates a new InternalXMLClassDescriptor for the given XMLClassDescriptor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a specified nature.boolean
Returns true if the given object, represented by this XMLClassDescriptor, can accept a value for the member associated with the given xml name and namespace.void
checkDescriptorForCorrectOrderWithinSequence
(XMLFieldDescriptor elementDescriptor, UnmarshalState parentState, String xmlName) Checks whether the given XMLFieldDescriptor is the one actually expected, given the natural order as defined by a sequence definitionReturns the set of XMLFieldDescriptors for all members that should be marshalled as XML attributes.Returns the XMLClassDescriptor that this InternalXMLClassDescriptor wraps.Returns the XMLFieldDescriptor for the member that should be marshalled as text content.Returns the set of XMLFieldDescriptors for all members that should be marshalled as XML elements.Returns the class descriptor of the class extended by this class.getFieldDescriptor
(String name, String namespace, NodeType nodeType) Returns the XML field descriptor matching the given xml name and nodeType.Returns a list of fields represented by this descriptor.Returns the identity field, null if this class has no identity.Returns the Java class represented by this descriptor.Returns the namespace prefix to use when marshalling as XML.Returns the namespace URI used when marshalling and unmarshalling as XML.getProperty
(String name) Get a property by its name.Returns a specific validator for the class described by this ClassDescriptor.Returns the XML Name for the Class being described.boolean
Checks if a specified nature has been added.boolean
Returns true if the wrapped ClassDescriptor was created by introspection.boolean
isChoice()
Indicates whether the XML artifact described by this descriptor is a <xsd:choice>.void
setProperty
(String name, Object value) Set a property specified by the name to the passed value.
-
Constructor Details
-
InternalXMLClassDescriptor
Creates a new InternalXMLClassDescriptor for the given XMLClassDescriptor.
-
-
Method Details
-
getClassDescriptor
Returns the XMLClassDescriptor that this InternalXMLClassDescriptor wraps.- Returns:
- the XMLClassDescriptor
-
getAttributeDescriptors
Returns the set of XMLFieldDescriptors for all members that should be marshalled as XML attributes. This includes namespace nodes.- Specified by:
getAttributeDescriptors
in interfaceXMLClassDescriptor
- Returns:
- an array of XMLFieldDescriptors for all members that should be marshalled as XML attributes.
-
getContentDescriptor
Returns the XMLFieldDescriptor for the member that should be marshalled as text content.- Specified by:
getContentDescriptor
in interfaceXMLClassDescriptor
- Returns:
- the XMLFieldDescriptor for the member that should be marshalled as text content.
-
getFieldDescriptor
Returns the XML field descriptor matching the given xml name and nodeType. If NodeType is null, then either an AttributeDescriptor, or ElementDescriptor may be returned. Null is returned if no matching descriptor is available.- Specified by:
getFieldDescriptor
in interfaceXMLClassDescriptor
- Parameters:
name
- the xml name to match againstnamespace
- the xml namespace to matchnodeType
- the NodeType to match against, or null if the node type is not known.- Returns:
- the matching descriptor, or null if no matching descriptor is available.
-
getElementDescriptors
Returns the set of XMLFieldDescriptors for all members that should be marshalled as XML elements.- Specified by:
getElementDescriptors
in interfaceXMLClassDescriptor
- Returns:
- an array of XMLFieldDescriptors for all members that should be marshalled as XML elements.
-
getNameSpacePrefix
Description copied from interface:XMLClassDescriptor
Returns the namespace prefix to use when marshalling as XML.- Specified by:
getNameSpacePrefix
in interfaceXMLClassDescriptor
- Returns:
- the namespace prefix to use when marshalling as XML.
-
getNameSpaceURI
Description copied from interface:XMLClassDescriptor
Returns the namespace URI used when marshalling and unmarshalling as XML.- Specified by:
getNameSpaceURI
in interfaceXMLClassDescriptor
- Returns:
- the namespace URI used when marshalling and unmarshalling as XML.
-
getValidator
Returns a specific validator for the class described by this ClassDescriptor. A null value may be returned if no specific validator exists.- Specified by:
getValidator
in interfaceXMLClassDescriptor
- Returns:
- the type validator for the class described by this ClassDescriptor.
-
getXMLName
Returns the XML Name for the Class being described.- Specified by:
getXMLName
in interfaceXMLClassDescriptor
- Returns:
- the XML name.
-
introspected
public boolean introspected()Returns true if the wrapped ClassDescriptor was created by introspection.- Returns:
- true if the wrapped ClassDescriptor was created by introspection.
-
canAccept
Description copied from interface:XMLClassDescriptor
Returns true if the given object, represented by this XMLClassDescriptor, can accept a value for the member associated with the given xml name and namespace.
An XMLClassDescriptor can accept a value for a field if it contains a descriptor that matches the given xml name and namespace and if the given object can hold this field (i.e a value is not already set for this field).
- Specified by:
canAccept
in interfaceXMLClassDescriptor
- Parameters:
name
- the xml name of the field to checknamespace
- the namespace uriobject
- the object instance represented by this XMLCLassDescriptor- Returns:
- true if the given object represented by this XMLClassDescriptor can accept a member whose name is given.
- See Also:
-
checkDescriptorForCorrectOrderWithinSequence
public void checkDescriptorForCorrectOrderWithinSequence(XMLFieldDescriptor elementDescriptor, UnmarshalState parentState, String xmlName) throws ValidationException Checks whether the given XMLFieldDescriptor is the one actually expected, given the natural order as defined by a sequence definition- Specified by:
checkDescriptorForCorrectOrderWithinSequence
in interfaceXMLClassDescriptor
- Parameters:
elementDescriptor
- The XML field descriptor to be checkedxmlName
- TODO- Throws:
ValidationException
- If the descriptor is not the one expected- See Also:
-
getJavaClass
Returns the Java class represented by this descriptor.- Specified by:
getJavaClass
in interfaceClassDescriptor
- Returns:
- The Java class
-
getFields
Returns a list of fields represented by this descriptor.- Specified by:
getFields
in interfaceClassDescriptor
- Returns:
- A list of fields
-
getExtends
Returns the class descriptor of the class extended by this class.- Specified by:
getExtends
in interfaceClassDescriptor
- Returns:
- The extended class descriptor
-
getIdentity
Returns the identity field, null if this class has no identity.- Specified by:
getIdentity
in interfaceClassDescriptor
- Returns:
- The identity field
-
isChoice
public boolean isChoice()Indicates whether the XML artifact described by this descriptor is a <xsd:choice>.- Specified by:
isChoice
in interfaceXMLClassDescriptor
- Returns:
- True if the artifact described is a choice.
- See Also:
-
getProperty
Description copied from interface:PropertyHolder
Get a property by its name.- Specified by:
getProperty
in interfacePropertyHolder
- Parameters:
name
- of the property- Returns:
- value of the property
-
setProperty
Description copied from interface:PropertyHolder
Set a property specified by the name to the passed value.- Specified by:
setProperty
in interfacePropertyHolder
- Parameters:
name
- of the propertyvalue
- of the property
-
addNature
Description copied from interface:NatureExtendable
Adds a specified nature.- Specified by:
addNature
in interfaceNatureExtendable
- Parameters:
nature
- ID of the Nature
-
hasNature
Description copied from interface:NatureExtendable
Checks if a specified nature has been added.- Specified by:
hasNature
in interfaceNatureExtendable
- Parameters:
nature
- ID of the Nature- Returns:
- true if the Nature ID was added.
-