Package org.exolab.castor.jdo.engine
Class JDOMappingLoader
- java.lang.Object
-
- org.exolab.castor.mapping.loader.AbstractMappingLoader2
-
- org.exolab.castor.mapping.loader.AbstractMappingLoader
-
- 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: 8749 $ $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, NAME, STRING_ARG, VALUE_OF
-
-
Constructor Summary
Constructors Constructor Description JDOMappingLoader(java.lang.ClassLoader loader)
Creates an instance ofJDOMappingLoader
, providing aClassLoader
instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ClassDescriptor
createClassDescriptor(ClassMapping classMapping)
protected FieldDescriptorImpl
createFieldDesc(java.lang.Class javaClass, 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<FieldDescriptor> fldList, java.lang.String idName, java.lang.Class javaClass)
BindingType
getBindingType()
protected java.lang.String[]
getSqlTypes(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, 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)
Walks through all fields of a descriptor and resolves relationClassDescriptor
s by using mapping information or, if not present, resolution by file to support generatedClassDescriptor
s.-
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, getClassLoader, getDescriptor, getDescriptors, isAllowRedefinition, loadMapping, setAllowRedefinitions, setClassLoader
-
-
-
-
Constructor Detail
-
JDOMappingLoader
public JDOMappingLoader(java.lang.ClassLoader loader)
Creates an instance ofJDOMappingLoader
, providing aClassLoader
instance.- Parameters:
loader
- A CustomClassLoader
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(MappingRoot mapping, java.lang.Object param) throws MappingException
Loads the mapping from the specified mapping object if not loaded previously.- Specified by:
loadMapping
in classAbstractMappingLoader
- 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
- Specified by:
createClassDescriptor
in classAbstractMappingLoader
- Throws:
MappingException
-
findIdentityByName
protected FieldDescriptor findIdentityByName(java.util.List<FieldDescriptor> 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 relationClassDescriptor
s by using mapping information or, if not present, resolution by file to support generatedClassDescriptor
s. ResolvedClassDescriptor
s will be set as a field's descriptor.- Specified by:
resolveRelations
in classAbstractMappingLoader
- Parameters:
clsDesc
- The ClassDescriptor in focus.
-
getSqlTypes
protected java.lang.String[] getSqlTypes(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, FieldMapping fieldMap) throws MappingException
- Overrides:
getTypeInfo
in classAbstractMappingLoader
- Throws:
MappingException
-
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 stockFieldDescriptor
. Implementations may extend this class to create a more suitable descriptor.- Overrides:
createFieldDesc
in classAbstractMappingLoader
- 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.
-
-