org.exolab.castor.jdo.engine
Class JDOMappingLoader

java.lang.Object
  extended by org.exolab.castor.mapping.loader.AbstractMappingLoader2
      extended by org.exolab.castor.mapping.loader.AbstractMappingLoader
          extended by org.exolab.castor.jdo.engine.JDOMappingLoader
All Implemented Interfaces:
MappingLoader

public final class JDOMappingLoader
extends AbstractMappingLoader

A JDO implementation of mapping helper. Creates JDO class descriptors from the mapping file.

Version:
$Revision: 8034 $ $Date: 2006-04-13 07:37:49 -0600 (Thu, 13 Apr 2006) $
Author:
Assaf Arkin, Ralf Joachim

Nested Class Summary
 
Nested classes/interfaces inherited from class org.exolab.castor.mapping.loader.AbstractMappingLoader
AbstractMappingLoader.TypeInfoReference
 
Field Summary
 
Fields inherited from class org.exolab.castor.mapping.loader.AbstractMappingLoader
EMPTY_ARGS, STRING_ARG, VALUE_OF
 
Constructor Summary
JDOMappingLoader(java.lang.ClassLoader loader)
          Creates an instance of JDOMappingLoader, providing a ClassLoader instance.
 
Method Summary
protected  ClassDescriptor createClassDescriptor(org.exolab.castor.mapping.xml.ClassMapping classMapping)
           
protected  FieldDescriptorImpl createFieldDesc(java.lang.Class javaClass, org.exolab.castor.mapping.xml.FieldMapping fieldMap)
          Creates a single field descriptor.
static java.lang.String definition2param(java.lang.String sqlTypeDef)
          Extracts parameter for type convertor from the SQL type definition of the form "SQL_TYPE_NAME[PARAMETER]".
static java.lang.String definition2type(java.lang.String sqlTypeDef)
          Extracts SQL type name from the the SQL type definition of the form "SQL_TYPE_NAME[PARAMETER]".
protected  FieldDescriptor findIdentityByName(java.util.List fldList, java.lang.String idName, java.lang.Class javaClass)
           
 BindingType getBindingType()
          
protected  java.lang.String[] getSqlTypes(org.exolab.castor.mapping.xml.FieldMapping fieldMap)
          Parse the sql type attribute to build an array of types, needed to support whitespace inside parameterized types (see Bug 1045).
protected  TypeInfo getTypeInfo(java.lang.Class fieldType, CollectionHandler colHandler, org.exolab.castor.mapping.xml.FieldMapping fieldMap)
           
 void loadMapping(org.exolab.castor.mapping.xml.MappingRoot mapping, java.lang.Object param)
          Loads the mapping from the specified mapping object if not loaded previously.
protected  void resolveRelations(ClassDescriptor clsDesc)
          Walks through all fields of a descriptor and resolves relation ClassDescriptors by using mapping information or, if not present, resolution by file to support generated ClassDescriptors.
 
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

JDOMappingLoader

public JDOMappingLoader(java.lang.ClassLoader loader)
Creates an instance of JDOMappingLoader, providing a ClassLoader instance.

Parameters:
loader - A Custom ClassLoader instance.
Method Detail

definition2param

public static java.lang.String definition2param(java.lang.String sqlTypeDef)
Extracts parameter for type convertor from the SQL type definition of the form "SQL_TYPE_NAME[PARAMETER]". If the type is not parameterized, returns null.

Parameters:
sqlTypeDef - SQL type definition (e.g. char[01]).
Returns:
Parameter (e.g. "01") or null if not parameterized.

definition2type

public static java.lang.String definition2type(java.lang.String sqlTypeDef)
Extracts SQL type name from the the SQL type definition of the form "SQL_TYPE_NAME[PARAMETER]".

Parameters:
sqlTypeDef - SQL type definition (e.g. char[01]).
Returns:
SQL type name (e.g. "char").

getBindingType

public BindingType getBindingType()


loadMapping

public void loadMapping(org.exolab.castor.mapping.xml.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(org.exolab.castor.mapping.xml.ClassMapping classMapping)
                                         throws MappingException
Specified by:
createClassDescriptor in class AbstractMappingLoader
Throws:
MappingException

findIdentityByName

protected FieldDescriptor findIdentityByName(java.util.List fldList,
                                             java.lang.String idName,
                                             java.lang.Class javaClass)
                                      throws MappingException
Throws:
MappingException

resolveRelations

protected void resolveRelations(ClassDescriptor clsDesc)
Walks through all fields of a descriptor and resolves relation ClassDescriptors by using mapping information or, if not present, resolution by file to support generated ClassDescriptors. Resolved ClassDescriptors will be set as a field's descriptor.

Specified by:
resolveRelations in class AbstractMappingLoader
Parameters:
clsDesc - The ClassDescriptor in focus.

getSqlTypes

protected java.lang.String[] getSqlTypes(org.exolab.castor.mapping.xml.FieldMapping fieldMap)
Parse the sql type attribute to build an array of types, needed to support whitespace inside parameterized types (see Bug 1045).


getTypeInfo

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

createFieldDesc

protected FieldDescriptorImpl createFieldDesc(java.lang.Class javaClass,
                                              org.exolab.castor.mapping.xml.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.


Copyright © 2011. All Rights Reserved.