public class RDBMSMappingManager extends Object implements MappingManager
Modifier and Type | Class and Description |
---|---|
class |
RDBMSMappingManager.MappingConverterDetails |
protected class |
RDBMSMappingManager.RDBMSTypeMapping |
Modifier and Type | Field and Description |
---|---|
protected org.datanucleus.ClassLoaderResolver |
clr |
protected org.datanucleus.util.MultiMap |
datastoreMappingsByJavaType |
protected org.datanucleus.util.MultiMap |
datastoreMappingsByJDBCType |
protected org.datanucleus.util.MultiMap |
datastoreMappingsBySQLType |
protected RDBMSStoreManager |
storeMgr |
Constructor and Description |
---|
RDBMSMappingManager(RDBMSStoreManager storeMgr)
Constructor for a mapping manager for an RDBMS datastore.
|
Modifier and Type | Method and Description |
---|---|
Column |
createColumn(org.datanucleus.metadata.AbstractMemberMetaData mmd,
Table table,
JavaTypeMapping mapping,
org.datanucleus.metadata.ColumnMetaData colmd,
Column reference,
org.datanucleus.ClassLoaderResolver clr)
Method to create a datastore field for a persistable mapping.
|
Column |
createColumn(JavaTypeMapping mapping,
String javaType,
org.datanucleus.metadata.ColumnMetaData colmd)
Method to create a datastore field for a Java type mapping.
|
Column |
createColumn(JavaTypeMapping mapping,
String javaType,
int datastoreFieldIndex)
Method to create a column for a Java type mapping.
|
DatastoreMapping |
createDatastoreMapping(JavaTypeMapping mapping,
org.datanucleus.metadata.AbstractMemberMetaData mmd,
int index,
Column column)
Method to create the datastore mapping for a java type mapping at a particular index.
|
DatastoreMapping |
createDatastoreMapping(JavaTypeMapping mapping,
Column column,
String javaType)
Method to create the datastore mapping for a particular column and java type.
|
void |
deregisterDatastoreMappingsForJDBCType(String jdbcTypeName)
Utility to deregister all mappings for a JDBC type.
|
protected Class |
getDatastoreMappingClass(String fieldName,
String javaType,
String jdbcType,
String sqlType,
org.datanucleus.ClassLoaderResolver clr)
Accessor for a datastore mapping class for the specified java type (and optional jdbc type or sql type).
|
protected RDBMSMappingManager.MappingConverterDetails |
getDefaultJavaTypeMapping(Class javaType,
org.datanucleus.metadata.ColumnMetaData[] colmds)
Method to return the default java type mapping class for a specified java type.
|
protected JavaTypeMapping |
getElementMapping(Table table,
org.datanucleus.metadata.AbstractMemberMetaData mmd,
org.datanucleus.metadata.FieldRole fieldRole,
org.datanucleus.ClassLoaderResolver clr)
Convenience accessor for the element mapping for the element of a collection/array of elements.
|
protected JavaTypeMapping |
getKeyMapping(Table table,
org.datanucleus.metadata.AbstractMemberMetaData mmd,
org.datanucleus.ClassLoaderResolver clr)
Convenience accessor for the mapping of the key of a map.
|
JavaTypeMapping |
getMapping(Class javaType)
Accessor for the mapping for the specified class.
|
JavaTypeMapping |
getMapping(Class javaType,
boolean serialised,
boolean embedded,
String fieldName)
Accessor for the mapping for the specified class.
|
JavaTypeMapping |
getMapping(Table table,
org.datanucleus.metadata.AbstractMemberMetaData mmd,
org.datanucleus.ClassLoaderResolver clr,
org.datanucleus.metadata.FieldRole fieldRole)
Accessor for the mapping for the member of the specified table.
|
protected RDBMSMappingManager.MappingConverterDetails |
getMappingClass(Class javaType,
boolean serialised,
boolean embedded,
org.datanucleus.metadata.ColumnMetaData[] colmds,
String fieldName)
Accessor for the mapping class for the specified type.
|
JavaTypeMapping |
getMappingWithDatastoreMapping(Class javaType,
boolean serialised,
boolean embedded,
org.datanucleus.ClassLoaderResolver clr)
Accessor for the mapping for the specified class.
|
protected Class |
getOverrideMappingClass(Class mappingClass,
org.datanucleus.metadata.AbstractMemberMetaData mmd,
org.datanucleus.metadata.FieldRole fieldRole)
Convenience method to allow overriding of particular mapping classes.
|
protected JavaTypeMapping |
getValueMapping(Table table,
org.datanucleus.metadata.AbstractMemberMetaData mmd,
org.datanucleus.ClassLoaderResolver clr)
Convenience accessor for the mapping of the value for a map.
|
void |
loadDatastoreMapping(org.datanucleus.plugin.PluginManager mgr,
org.datanucleus.ClassLoaderResolver clr,
String vendorId)
Load all datastore mappings defined in the associated plugins.
|
void |
registerDatastoreMapping(String javaTypeName,
Class datastoreMappingType,
String jdbcType,
String sqlType,
boolean dflt)
Utility to register a datastore mapping for a java type, and the SQL/JDBC types it can be mapped to.
|
protected final RDBMSStoreManager storeMgr
protected final org.datanucleus.ClassLoaderResolver clr
protected org.datanucleus.util.MultiMap datastoreMappingsByJavaType
protected org.datanucleus.util.MultiMap datastoreMappingsByJDBCType
protected org.datanucleus.util.MultiMap datastoreMappingsBySQLType
public RDBMSMappingManager(RDBMSStoreManager storeMgr)
storeMgr
- The StoreManagerpublic void loadDatastoreMapping(org.datanucleus.plugin.PluginManager mgr, org.datanucleus.ClassLoaderResolver clr, String vendorId)
loadDatastoreMapping
in interface MappingManager
mgr
- the PluginManagerclr
- the ClassLoaderResolvervendorId
- the datastore vendor idpublic JavaTypeMapping getMappingWithDatastoreMapping(Class javaType, boolean serialised, boolean embedded, org.datanucleus.ClassLoaderResolver clr)
getMappingWithDatastoreMapping
in interface MappingManager
javaType
- Java typeserialised
- Whether the type is serialisedembedded
- Whether the type is embeddedclr
- ClassLoader resolverpublic JavaTypeMapping getMapping(Class javaType)
getMapping
in interface MappingManager
javaType
- Java typepublic JavaTypeMapping getMapping(Class javaType, boolean serialised, boolean embedded, String fieldName)
getMapping
in interface MappingManager
javaType
- Java typeserialised
- Whether the type is serialisedembedded
- Whether the type is embeddedfieldName
- Name of the field (for logging)public JavaTypeMapping getMapping(Table table, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.ClassLoaderResolver clr, org.datanucleus.metadata.FieldRole fieldRole)
getMapping
in interface MappingManager
table
- Table to add the mapping tommd
- MetaData for the member to mapclr
- The ClassLoaderResolverfieldRole
- Role that this mapping plays for the fieldprotected RDBMSMappingManager.MappingConverterDetails getMappingClass(Class javaType, boolean serialised, boolean embedded, org.datanucleus.metadata.ColumnMetaData[] colmds, String fieldName)
javaType
- Class to queryserialised
- Whether the field is serialisedembedded
- Whether the field is embeddedcolmds
- Metadata for column(s) (optional)fieldName
- The full field name (for logging only)protected JavaTypeMapping getElementMapping(Table table, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.metadata.FieldRole fieldRole, org.datanucleus.ClassLoaderResolver clr)
table
- The tablemmd
- MetaData for the collection member containing the collection/array of PCsfieldRole
- role of this mapping for this memberclr
- ClassLoader resolverprotected JavaTypeMapping getKeyMapping(Table table, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.ClassLoaderResolver clr)
table
- The containermmd
- MetaData for the field containing the map that this key is forclr
- ClassLoader resolverprotected JavaTypeMapping getValueMapping(Table table, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.ClassLoaderResolver clr)
table
- The containermmd
- MetaData for the field/property containing the map that this value is forclr
- ClassLoader resolverprotected RDBMSMappingManager.MappingConverterDetails getDefaultJavaTypeMapping(Class javaType, org.datanucleus.metadata.ColumnMetaData[] colmds)
javaType
- java typecolmds
- Metadata for the column(s) (optional)public void registerDatastoreMapping(String javaTypeName, Class datastoreMappingType, String jdbcType, String sqlType, boolean dflt)
javaTypeName
- Name of the java typedatastoreMappingType
- The datastore mappingjdbcType
- The JDBC type that can be usedsqlType
- The SQL type that can be useddflt
- Whether this type should be used as the default mapping for this Java typepublic void deregisterDatastoreMappingsForJDBCType(String jdbcTypeName)
jdbcTypeName
- The JDBC type nameprotected Class getOverrideMappingClass(Class mappingClass, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.metadata.FieldRole fieldRole)
mappingClass
- The mapping class selectedmmd
- Meta data for the member (if appropriate)fieldRole
- Role for the field (e.g collection element)protected Class getDatastoreMappingClass(String fieldName, String javaType, String jdbcType, String sqlType, org.datanucleus.ClassLoaderResolver clr)
fieldName
- Name of the field (if known)javaType
- The java typejdbcType
- The JDBC typesqlType
- The SQL Typeclr
- ClassLoader resolver to usepublic DatastoreMapping createDatastoreMapping(JavaTypeMapping mapping, org.datanucleus.metadata.AbstractMemberMetaData mmd, int index, Column column)
createDatastoreMapping
in interface MappingManager
mapping
- The java mappingmmd
- MetaData for the field/propertyindex
- Index of the columncolumn
- The columnpublic DatastoreMapping createDatastoreMapping(JavaTypeMapping mapping, Column column, String javaType)
createDatastoreMapping
in interface MappingManager
mapping
- The java mappingcolumn
- The column (can be null)javaType
- The java typepublic Column createColumn(JavaTypeMapping mapping, String javaType, int datastoreFieldIndex)
createColumn
in interface MappingManager
mapping
- Java type mapping for the fieldjavaType
- The type of field being stored in this columndatastoreFieldIndex
- Index of the datastore field to usepublic Column createColumn(JavaTypeMapping mapping, String javaType, org.datanucleus.metadata.ColumnMetaData colmd)
createColumn
in interface MappingManager
mapping
- Java type mapping for the fieldjavaType
- The type of field being stored in this columncolmd
- MetaData for the columnpublic Column createColumn(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, JavaTypeMapping mapping, org.datanucleus.metadata.ColumnMetaData colmd, Column reference, org.datanucleus.ClassLoaderResolver clr)
createColumn
in interface MappingManager
mmd
- MetaData for the field whose mapping it istable
- Datastore class where we create the datastore fieldmapping
- The Java type for this fieldcolmd
- The columnMetaData for this datastore fieldreference
- The datastore field we are referencingclr
- ClassLoader resolverCopyright © 2015. All rights reserved.