org.exolab.castor.xml
Class XMLMappingLoader

java.lang.Object
  extended by org.exolab.castor.mapping.loader.AbstractMappingLoader2
      extended by org.exolab.castor.mapping.loader.AbstractMappingLoader
          extended by org.exolab.castor.xml.XMLMappingLoader
All Implemented Interfaces:
MappingLoader

public final class XMLMappingLoader
extends AbstractMappingLoader

An XML implementation of mapping helper. Creates XML class descriptors from the mapping file.

Version:
$Revision: 8152 $ $Date: 2006-02-23 01:37:50 -0700 (Thu, 23 Feb 2006) $
Author:
Keith Visco, Assaf Arkin

Nested Class Summary
(package private)  class XMLMappingLoader.IdentityConvertor
          A special TypeConvertor that simply returns the object given.
 
Nested classes/interfaces inherited from class org.exolab.castor.mapping.loader.AbstractMappingLoader
AbstractMappingLoader.TypeInfoReference
 
Constructor Summary
XMLMappingLoader(java.lang.ClassLoader loader)
          Creates a new XMLMappingLoader.
 
Method Summary
protected  ClassDescriptor createClassDescriptor(ClassMapping classMapping)
          To create the class descriptor for the given class mapping.
protected  FieldDescriptorImpl createFieldDesc(java.lang.Class javaClass, FieldMapping fieldMap)
          Creates a single field descriptor.
protected  FieldDescriptor findIdentityByName(java.util.List fldList, java.lang.String idName, java.lang.Class javaClass)
           
 BindingType getBindingType()
          
protected  TypeInfo getTypeInfo(java.lang.Class fieldType, CollectionHandler colHandler, FieldMapping fieldMap)
           
 void loadMapping(MappingRoot mapping, java.lang.Object param)
          Loads the mapping from the specified mapping object if not loaded previously.
protected  void resolveRelations(ClassDescriptor clsDesc)
           
 void setLoadPackageMappings(boolean loadPackageMappings)
          Sets whether or not to look for and load package specific mapping files (".castor.xml" files).
 
Methods inherited from class org.exolab.castor.mapping.loader.AbstractMappingLoader
checkFieldNameDuplicates, createClassDescriptors, createFieldDescriptors, createFieldHandler, createFieldHandlers, divideFieldDescriptors, findAccessor, getDepended, getExtended, getIdColumnIndex, getIdentityColumnNames, getInternalContext, getOrigin, getSourceType, isPrimitive, resolveType, setInternalContext
 
Methods inherited from class org.exolab.castor.mapping.loader.AbstractMappingLoader2
addDescriptor, clear, descriptorIterator, getClassLoader, getDescriptor, getDescriptors, isAllowRedefinition, loadMapping, setAllowRedefinitions, setClassLoader
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMLMappingLoader

public XMLMappingLoader(java.lang.ClassLoader loader)
Creates a new XMLMappingLoader. Joachim 2007-08-19: called via ClassLoader from XMLMappingLoaderFactory.getMappingLoader() must not be modified!!!

Parameters:
loader - the class loader to use
Method Detail

getBindingType

public BindingType getBindingType()


loadMapping

public void loadMapping(MappingRoot mapping,
                        java.lang.Object param)
                 throws MappingException
Loads the mapping from the specified mapping object if not loaded previously.

Specified by:
loadMapping in class AbstractMappingLoader
Parameters:
mapping - The mapping information.
param - Arbitrary parameter that can be used by subclasses.
Throws:
MappingException - The mapping file is invalid.

createClassDescriptor

protected ClassDescriptor createClassDescriptor(ClassMapping classMapping)
                                         throws MappingException
To create the class descriptor for the given class mapping. Throws IllegalStateException if the class has no valid internal context.

Specified by:
createClassDescriptor in class AbstractMappingLoader
Parameters:
classMapping - the class mapping information to process
Returns:
the ClassDescriptor created for the class mapping
Throws:
MappingException - ...

findIdentityByName

protected final FieldDescriptor findIdentityByName(java.util.List fldList,
                                                   java.lang.String idName,
                                                   java.lang.Class javaClass)

resolveRelations

protected final void resolveRelations(ClassDescriptor clsDesc)
Specified by:
resolveRelations in class AbstractMappingLoader

createFieldDesc

protected FieldDescriptorImpl createFieldDesc(java.lang.Class javaClass,
                                              FieldMapping fieldMap)
                                       throws MappingException
Description copied from class: AbstractMappingLoader
Creates a single field descriptor. The field mapping is used to create a new stock FieldDescriptor. Implementations may extend this class to create a more suitable descriptor.

Overrides:
createFieldDesc in class AbstractMappingLoader
Parameters:
javaClass - The class to which the field belongs.
fieldMap - The field mapping information.
Returns:
The field descriptor.
Throws:
MappingException - The field or its accessor methods are not found, not accessible, not of the specified type, etc.

setLoadPackageMappings

public void setLoadPackageMappings(boolean loadPackageMappings)
Sets whether or not to look for and load package specific mapping files (".castor.xml" files).

Parameters:
loadPackageMappings - a boolean that enables or disables the loading of package specific mapping files

getTypeInfo

protected TypeInfo getTypeInfo(java.lang.Class fieldType,
                               CollectionHandler colHandler,
                               FieldMapping fieldMap)
                        throws MappingException
Overrides:
getTypeInfo in class AbstractMappingLoader
Throws:
MappingException


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