Class MarshalFramework

  • Direct Known Subclasses:
    Marshaller, UnmarshalHandler

    abstract class MarshalFramework
    extends java.lang.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 Summary

      Fields 
      Modifier and Type Field Description
      (package private) static java.lang.String INTERNAL_XML_NAME
      A constant to indicate a wrong name without setting null.
      (package private) static java.lang.String JAVA_PREFIX
      The default prefix used for specifying the xsi:type as a classname instead of a schema name.
      static java.lang.String LANG_ATTR
      The xml:lang attribute, without the "xml:" prefix.
      static java.lang.String NIL_ATTR
      The xsi:nil attribute, without the "xsi:" prefix.
      (package private) static XMLFieldDescriptor[] NO_FIELD_DESCRIPTORS
      An empty array of field descriptors.
      (package private) static java.lang.String QNAME_NAME
      The name of the QName type.
      static java.lang.String SPACE_ATTR
      The xml:space attribute name, without the "xml:" prefix.
      static java.lang.String TRUE_VALUE
      The value of 'true'.
      static java.lang.String TYPE_ATTR
      The xsi:type attribute name, without the "xsi:" prefix.
      static java.lang.String XML_LANG_ATTR
      The xml:lang attribute name.
      static java.lang.String XML_SPACE_ATTR
      The xml:space attribute name.
      static java.lang.String XSI_NAMESPACE
      The XSI Namespace URI.
      static java.lang.String XSI_NIL_ATTR
      The xsi:nil attribute.
      static java.lang.String XSI_NO_NAMESPACE_SCHEMA_LOCATION
      The name of the no namespace schema location attribute.
      static java.lang.String XSI_SCHEMA_LOCATION
      The name of the Schema location attribute.
    • Field Detail

      • XSI_NAMESPACE

        public static final java.lang.String XSI_NAMESPACE
        The XSI Namespace URI.
        See Also:
        Constant Field Values
      • XSI_SCHEMA_LOCATION

        public static final java.lang.String XSI_SCHEMA_LOCATION
        The name of the Schema location attribute.
        See Also:
        Constant Field Values
      • XSI_NO_NAMESPACE_SCHEMA_LOCATION

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

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

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

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

        public static final java.lang.String XSI_NIL_ATTR
        The xsi:nil attribute.
        See Also:
        Constant Field Values
      • XML_SPACE_ATTR

        public static final java.lang.String XML_SPACE_ATTR
        The xml:space attribute name.
        See Also:
        Constant Field Values
      • SPACE_ATTR

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

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

        public static final java.lang.String TRUE_VALUE
        The value of 'true'.
        See Also:
        Constant Field Values
      • INTERNAL_XML_NAME

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

        static final java.lang.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:
        Constant Field Values
      • QNAME_NAME

        static final java.lang.String QNAME_NAME
        The name of the QName type.
        See Also:
        Constant Field Values
      • NO_FIELD_DESCRIPTORS

        static final XMLFieldDescriptor[] NO_FIELD_DESCRIPTORS
        An empty array of field descriptors.
    • Method Detail

      • getJavaNaming

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

        public static boolean isCollection​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.String ns1,
                                              java.lang.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​(java.lang.Class a,
                                                java.lang.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​(java.lang.String name,
                                                                        java.lang.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