Class BaseDescriptor

java.lang.Object
org.exolab.castor.types.BaseDescriptor
All Implemented Interfaces:
NatureExtendable, PropertyHolder, ClassDescriptor, XMLClassDescriptor
Direct Known Subclasses:
CenturyDescriptor, DateDescriptor, DateTimeDescriptor, DurationDescriptor, GDayDescriptor, GMonthDayDescriptor, GMonthDescriptor, GYearDescriptor, GYearMonthDescriptor, MonthDescriptor, RecurringDurationDescriptor, TimeDescriptor, TimeDurationDescriptor, TimePeriodDescriptor, YearDescriptor

public class BaseDescriptor extends Object implements XMLClassDescriptor
The Base Descriptor class, this class is extended by the descriptors for the custom Castor schema types.
Version:
$Revision: 7794 $ $Date: 2004-12-16 22:49:25 -0700 (Thu, 16 Dec 2004) $
Author:
Keith Visco
  • Field Details

    • noXMLFields

      protected static final XMLFieldDescriptor[] noXMLFields
      Used for returning no attribute and no element fields
  • Constructor Details

    • BaseDescriptor

      protected BaseDescriptor(String xmlName, Class type)
  • Method Details

    • getAttributeDescriptors

      public XMLFieldDescriptor[] getAttributeDescriptors()
      Returns the set of XMLFieldDescriptors for all members that should be marshalled as XML attributes.
      Specified by:
      getAttributeDescriptors in interface XMLClassDescriptor
      Returns:
      an array of XMLFieldDescriptors for all members that should be marshalled as XML attributes.
    • getContentDescriptor

      public XMLFieldDescriptor getContentDescriptor()
      Returns the XMLFieldDescriptor for the member that should be marshalled as text content.
      Specified by:
      getContentDescriptor in interface XMLClassDescriptor
      Returns:
      the XMLFieldDescriptor for the member that should be marshalled as text content.
    • getElementDescriptors

      public XMLFieldDescriptor[] getElementDescriptors()
      Returns the set of XMLFieldDescriptors for all members that should be marshalled as XML elements.
      Specified by:
      getElementDescriptors in interface XMLClassDescriptor
      Returns:
      an array of XMLFieldDescriptors for all members that should be marshalled as XML elements.
    • getFieldDescriptor

      public XMLFieldDescriptor getFieldDescriptor(String name, String namespace, NodeType nodeType)
      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 interface XMLClassDescriptor
      Parameters:
      name - The xml name to match against.
      namespace - The namespace uri.
      nodeType - 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.
    • getNameSpacePrefix

      public String getNameSpacePrefix()
      Description copied from interface: XMLClassDescriptor
      Returns the namespace prefix to use when marshalling as XML.
      Specified by:
      getNameSpacePrefix in interface XMLClassDescriptor
      Returns:
      the namespace prefix to use when marshalling as XML.
    • getNameSpaceURI

      public String getNameSpaceURI()
      Description copied from interface: XMLClassDescriptor
      Returns the namespace URI used when marshalling and unmarshalling as XML.
      Specified by:
      getNameSpaceURI in interface XMLClassDescriptor
      Returns:
      the namespace URI used when marshalling and unmarshalling as XML.
    • getValidator

      public TypeValidator 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 interface XMLClassDescriptor
      Returns:
      the type validator for the class described by this ClassDescriptor.
    • getXMLName

      public String getXMLName()
      Returns the XML Name for the Class being described.
      Specified by:
      getXMLName in interface XMLClassDescriptor
      Returns:
      the XML name.
    • toString

      public String toString()
      Returns the String representation of this XMLClassDescriptor.
      Overrides:
      toString in class Object
      Returns:
      the String representation of this XMLClassDescriptor.
    • getJavaClass

      public Class getJavaClass()
      Returns the Java class represented by this descriptor.
      Specified by:
      getJavaClass in interface ClassDescriptor
      Returns:
      The Java class
    • getFields

      public FieldDescriptor[] getFields()
      Returns a list of fields represented by this descriptor.
      Specified by:
      getFields in interface ClassDescriptor
      Returns:
      A list of fields
    • getExtends

      public ClassDescriptor getExtends()
      Returns the class descriptor of the class extended by this class.
      Specified by:
      getExtends in interface ClassDescriptor
      Returns:
      The extended class descriptor
    • getIdentity

      public FieldDescriptor getIdentity()
      Returns the identity field, null if this class has no identity.
      Specified by:
      getIdentity in interface ClassDescriptor
      Returns:
      The identity field
    • getAccessMode

      public AccessMode getAccessMode()
      Returns the access mode specified for this class.
      Returns:
      The access mode
    • canAccept

      public boolean canAccept(String name, String namespace, Object object)
      Returns true if the given object represented by this XMLClassDescriptor can accept a member whose name is given. An XMLClassDescriptor can accept a field if it contains a descriptor that matches the given name and if the given object can hold this field (i.e a value is not already set for this field).

      This is mainly used for container object (that can contains other object), in this particular case the implementation will return null.

      Specified by:
      canAccept in interface XMLClassDescriptor
      Parameters:
      name - the xml name of the field to check
      namespace - the namespace uri
      object - the object represented by this XMLCLassDescriptor
      Returns:
      true if the given object represented by this XMLClassDescriptor can accept a member whose name is given.
    • 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 interface XMLClassDescriptor
      Parameters:
      elementDescriptor - The XML field descriptor to be checked
      xmlName - TODO
      Throws:
      ValidationException - If the descriptor is not the one expected
      See Also:
    • isChoice

      public boolean isChoice()
      Indicates whether the XML artifact described by this descriptor is a invalid input: '<'xsd:choice>.
      Specified by:
      isChoice in interface XMLClassDescriptor
      Returns:
      True if the artifact described is a choice.
      See Also:
    • getProperty

      public Object getProperty(String name)
      Description copied from interface: PropertyHolder
      Get a property by its name.
      Specified by:
      getProperty in interface PropertyHolder
      Parameters:
      name - of the property
      Returns:
      value of the property
    • setProperty

      public void setProperty(String name, Object value)
      Description copied from interface: PropertyHolder
      Set a property specified by the name to the passed value.
      Specified by:
      setProperty in interface PropertyHolder
      Parameters:
      name - of the property
      value - of the property
    • addNature

      public void addNature(String nature)
      Description copied from interface: NatureExtendable
      Adds a specified nature.
      Specified by:
      addNature in interface NatureExtendable
      Parameters:
      nature - ID of the Nature
    • hasNature

      public boolean hasNature(String nature)
      Description copied from interface: NatureExtendable
      Checks if a specified nature has been added.
      Specified by:
      hasNature in interface NatureExtendable
      Parameters:
      nature - ID of the Nature
      Returns:
      true if the Nature ID was added.