Class MarshalFramework

java.lang.Object
org.exolab.castor.xml.MarshalFramework
Direct Known Subclasses:
Marshaller, UnmarshalHandler

abstract class MarshalFramework extends Object
A core class for common code shared throughout the Marshalling Framework
Version:
$Revision: 8057 $ $Date: 2005-12-13 14:58:48 -0700 (Tue, 13 Dec 2005) $
Author:
Keith Visco
  • Field Details

    • XSI_NAMESPACE

      public static final String XSI_NAMESPACE
      The XSI Namespace URI.
      See Also:
    • XSI_SCHEMA_LOCATION

      public static final String XSI_SCHEMA_LOCATION
      The name of the Schema location attribute.
      See Also:
    • XSI_NO_NAMESPACE_SCHEMA_LOCATION

      public static final String XSI_NO_NAMESPACE_SCHEMA_LOCATION
      The name of the no namespace schema location attribute.
      See Also:
    • XML_LANG_ATTR

      public static final String XML_LANG_ATTR
      The xml:lang attribute name.
      See Also:
    • LANG_ATTR

      public static final String LANG_ATTR
      The xml:lang attribute, without the "xml:" prefix.
      See Also:
    • NIL_ATTR

      public static final String NIL_ATTR
      The xsi:nil attribute, without the "xsi:" prefix.
      See Also:
    • XSI_NIL_ATTR

      public static final String XSI_NIL_ATTR
      The xsi:nil attribute.
      See Also:
    • XML_SPACE_ATTR

      public static final String XML_SPACE_ATTR
      The xml:space attribute name.
      See Also:
    • SPACE_ATTR

      public static final String SPACE_ATTR
      The xml:space attribute name, without the "xml:" prefix.
      See Also:
    • TYPE_ATTR

      public static final String TYPE_ATTR
      The xsi:type attribute name, without the "xsi:" prefix.
      See Also:
    • TRUE_VALUE

      public static final String TRUE_VALUE
      The value of 'true'.
      See Also:
    • INTERNAL_XML_NAME

      static final String INTERNAL_XML_NAME
      A constant to indicate a wrong name without setting null.
      See Also:
    • JAVA_PREFIX

      static final String JAVA_PREFIX
      The default prefix used for specifying the xsi:type as a classname instead of a schema name. This is a Castor specific hack.
      See Also:
    • QNAME_NAME

      static final String QNAME_NAME
      The name of the QName type.
      See Also:
    • NO_FIELD_DESCRIPTORS

      static final XMLFieldDescriptor[] NO_FIELD_DESCRIPTORS
      An empty array of field descriptors.
  • Constructor Details

  • Method Details

    • getJavaNaming

      public JavaNaming getJavaNaming()
      To get the JavaNaming instance to be used.
      Returns:
      the JavaNaming to be used
    • getInternalContext

      public InternalContext getInternalContext()
      To get the AbstractInternalContext to use.
      Returns:
      the AbstractInternalContext to use
    • setInternalContext

      public void setInternalContext(InternalContext internalContext)
      To set the AbstractInternalContext to use.
      Parameters:
      internalContext - the AbstractInternalContext to use
    • isCollection

      public static boolean isCollection(Class clazz)
      Returns true if the given Class is a considered a collection by the marshalling framework.
      Parameters:
      clazz - the Class to check
      Returns:
      true if the given Class is considered a collection. TODO: joachim: this code exists somewhere else too!!
    • getCollectionHandler

      public CollectionHandler getCollectionHandler(Class clazz)
      Returns the CollectionHandler associated with the given collection, or null if no such handler exists.
      Parameters:
      clazz - the Class to check
      Returns:
      the CollectionHandler for the associated type.
    • isPrimitive

      static boolean isPrimitive(Class type)
      Returns true if the given class should be treated as a primitive type. This method will return true for all Java primitive types, the set of primitive object wrappers, as well as Strings.
      Parameters:
      type - the Class to check
      Returns:
      true if the given class should be treated as a primitive type TODO: joachim: this code exists somewhere else too!!
    • isEnum

      static boolean isEnum(Class type)
      Returns true if the given class should be treated as an enum type. This method will return true for all Java 5 (or later) enums, and for enum-style classes.
      Parameters:
      type - the Class to check
      Returns:
      true if the given class should be treated as an enum
    • hasFieldsAtLocation

      static final boolean hasFieldsAtLocation(String location, XMLClassDescriptor classDesc)
      Returns true if any of the fields associated with the given XMLClassDescriptor are located at, or beneath, the given location.
      Parameters:
      location - the location to compare against
      classDesc - the XMLClassDescriptor in which to check the field locations
      Returns:
      true if any of the fields has a location associated
    • namespaceEquals

      public static boolean namespaceEquals(String ns1, String ns2)
      Compares the given namespaces (as strings) for equality. null and empty values are considered equal.
      Parameters:
      ns1 - the namespace to compare to argument ns2
      ns2 - the namespace to compare to argument ns1
      Returns:
      true if the namespaces are considert equal TODO: joachim put it into XMLNaming!
    • primitiveOrWrapperEquals

      static boolean primitiveOrWrapperEquals(Class a, Class b)
      Returns true if the given classes are both the same primitive or primitive wrapper class. For exmaple, if class "a" is an int (Integer.TYPE) and class "b" is either an int or Integer.class then true will be returned, otherwise false.
      Parameters:
      a - compare a with b
      b - compare a with b
      Returns:
      true if both a and b are considered equal
    • searchInheritance

      protected MarshalFramework.InheritanceMatch[] searchInheritance(String name, String namespace, XMLClassDescriptor classDesc) throws MarshalException
      Search there is a field descriptor which can accept one of the class descriptor which match the given name and namespace.
      Parameters:
      name - XML name of the field
      namespace - namespace of the field
      classDesc - the class descriptor to match against
      cdResolver - the class descriptor resolver to use
      Returns:
      An array of InheritanceMatch.
      Throws:
      MarshalException - if the resolver called fails fatally