org.exolab.castor.xml

Class MarshalFramework

Known Direct Subclasses:
Marshaller, UnmarshalHandler

(package private) abstract class MarshalFramework
extends java.lang.Object

A core class for common code shared throughout the Marshalling Framework
Version:
$Revision: 6230 $ $Date: 2005-12-13 14:58:48 -0700 (Tue, 13 Dec 2005) $
Author:
Keith Visco

Nested Class Summary

static class
MarshalFramework.InheritanceMatch
Used to store the information when we find a possible inheritance.
(package private) class
MarshalFramework.InternalXMLClassDescriptor
An internal implementation of XMLClassDescriptor used by the Unmarshaller and Marshaller...

Field Summary

(package private) static String
INTERNAL_XML_NAME
(package private) static String
JAVA_PREFIX
The default prefix used for specifying the xsi:type as a classname instead of a schema name.
static String
LANG_ATTR
The xml:lang attribute, without the "xml:" prefix.
static 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 String
QNAME_NAME
The name of the QName type
static String
SPACE_ATTR
The xml:space attribute name, without the "xml:" prefix
static String
TRUE_VALUE
The value of 'true'
static String
TYPE_ATTR
The xsi:type attribute name, without the "xsi:" prefix
static String
XML_LANG_ATTR
The xml:lang attribute name
static String
XML_SPACE_ATTR
The xml:space attribute name
static String
XSI_NAMESPACE
The XSI Namespace URI
static String
XSI_NIL_ATTR
static String
XSI_NO_NAMESPACE_SCHEMA_LOCATION
The name of the no namespace schema location attribute
static String
XSI_SCHEMA_LOCATION
The name of the Schema location attribute

Method Summary

CollectionHandler
getCollectionHandler(Class clazz)
Returns the CollectionHandler associated with the given collection, or null if no such handler exists.
(package private) static 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.
static boolean
isCollection(Class clazz)
Returns true if the given Class is a considered a collection by the marshalling framework.
(package private) static boolean
isPrimitive(Class type)
Returns true if the given class should be treated as a primitive type.
static boolean
namespaceEquals(String ns1, String ns2)
Compares the given namespaces (as strings) for equality.
(package private) static boolean
primitiveOrWrapperEquals(Class a, Class b)
Returns true if the given classes are both the same primitive or primitive wrapper class.
static MarshalFramework.InheritanceMatch[]
searchInheritance(String name, String namespace, XMLClassDescriptor classDesc, XMLClassDescriptorResolver cdResolver)
Search there is a field descriptor which can accept one of the class descriptor which match the given name and namespace.

Field Details

INTERNAL_XML_NAME

(package private) static final String INTERNAL_XML_NAME

JAVA_PREFIX

(package private) 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.

LANG_ATTR

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

NIL_ATTR

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

NO_FIELD_DESCRIPTORS

(package private) static final XMLFieldDescriptor[] NO_FIELD_DESCRIPTORS
An empty array of field descriptors

QNAME_NAME

(package private) static final String QNAME_NAME
The name of the QName type

SPACE_ATTR

public static final String SPACE_ATTR
The xml:space attribute name, without the "xml:" prefix

TRUE_VALUE

public static final String TRUE_VALUE
The value of 'true'

TYPE_ATTR

public static final String TYPE_ATTR
The xsi:type attribute name, without the "xsi:" prefix

XML_LANG_ATTR

public static final String XML_LANG_ATTR
The xml:lang attribute name

XML_SPACE_ATTR

public static final String XML_SPACE_ATTR
The xml:space attribute name

XSI_NAMESPACE

public static final String XSI_NAMESPACE
The XSI Namespace URI

XSI_NIL_ATTR

public static final String XSI_NIL_ATTR

XSI_NO_NAMESPACE_SCHEMA_LOCATION

public static final String XSI_NO_NAMESPACE_SCHEMA_LOCATION
The name of the no namespace schema location attribute

XSI_SCHEMA_LOCATION

public static final String XSI_SCHEMA_LOCATION
The name of the Schema location attribute

Method Details

getCollectionHandler

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

hasFieldsAtLocation

(package private) 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

isCollection

public static boolean isCollection(Class clazz)
Returns true if the given Class is a considered a collection by the marshalling framework.
Returns:
true if the given Class is considered a collection.

isPrimitive

(package private) 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.
Returns:
true if the given class should be treated as a primitive type

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

primitiveOrWrapperEquals

(package private) 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.
Returns:
true if both a and b are considered equal

searchInheritance

public static MarshalFramework.InheritanceMatch[] searchInheritance(String name,
                                                                    String namespace,
                                                                    XMLClassDescriptor classDesc,
                                                                    XMLClassDescriptorResolver cdResolver)
            throws MarshalException
Search there is a field descriptor which can accept one of the class descriptor which match the given name and namespace.
Returns:
An array of InheritanceMatch.

Intalio Inc. (C) 1999-2006. All rights reserved http://www.intalio.com