|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.datanucleus.store.AbstractStoreManager
org.datanucleus.store.mapped.MappedStoreManager
public abstract class MappedStoreManager
Manager for a datastore that has a schema and maps classes to associated objects in the datastore. Datastores such as RDBMS will extend this type of StoreManager.
In a "mapped" datastore, a class is associated with a DatastoreClass. Similarly a field of a class is associated with a DatastoreField. Where a relation is stored separately this is associated with a DatastoreContainerObject. In an RDBMS datastore this will be
This type of StoreManager allows creation/validation of the schema. A schema is split into "tables", "columns", "constraints" currently. The PMF/EMF allows specification of a set of properties that will apply to this type of datastore.
| Field Summary | |
|---|---|
protected boolean |
autoCreateColumns
Whether to auto create any columns that are missing. |
protected boolean |
autoCreateConstraints
Whether to auto create any constraints |
protected boolean |
autoCreateTables
Whether to auto create any tables. |
protected boolean |
autoCreateWarnOnError
Whether to warn only when any errors occur on auto-create. |
protected java.lang.String |
catalogName
Catalog name for the database (if supported). |
protected java.util.Map<DatastoreIdentifier,DatastoreContainerObject> |
datastoreContainerByIdentifier
Map of all managed datastore containers (tables) keyed by the datastore identifier. |
protected DatastoreAdapter |
dba
Adapter for the datastore being used. |
protected IdentifierFactory |
identifierFactory
Factory for identifiers for this datastore. |
protected java.util.Map<ObjectProvider,DatastoreClass> |
insertedDatastoreClassByStateManager
Map of DatastoreClass keyed by StateManager, for objects currently being inserted. |
protected MappedTypeManager |
mappedTypeMgr
TypeManager for mapped information. |
protected MappingManager |
mappingManager
Manager for the mapping between Java and datastore types. |
protected java.lang.String |
schemaName
Schema name for the database (if supported). |
protected boolean |
validateColumns
Whether to validate any columns |
protected boolean |
validateConstraints
Whether to validate any constraints |
protected boolean |
validateTables
Whether to validate any tables |
| Fields inherited from class org.datanucleus.store.AbstractStoreManager |
|---|
autoStartMechanism, connectionMgr, fixedDatastore, LOCALISER, nontxConnectionFactoryName, omfContext, persistenceHandler2, readOnlyDatastore, schemaHandler, starter, starterInitialised, storeDataMgr, storeManagerKey, storeManagerRuntime, txConnectionFactoryName, valueGenerationMgr |
| Constructor Summary | |
|---|---|
protected |
MappedStoreManager(java.lang.String key,
ClassLoaderResolver clr,
OMFContext omfContext)
Constructor. |
| Method Summary | |
|---|---|
void |
addDatastoreContainer(DatastoreContainerObject table)
Method to add a datastore container to the managed datastore classes. |
abstract boolean |
allowsBatching()
Convenience method to return if the datastore supports batching and the user wants batching. |
void |
close()
Release of resources. |
Store |
getBackingStoreForField(ClassLoaderResolver clr,
AbstractMemberMetaData mmd,
java.lang.Class type)
Accessor for the backing store for the specified member. |
AbstractClassMetaData[] |
getClassesManagingTableForClass(AbstractClassMetaData cmd,
ClassLoaderResolver clr)
Method to return the class(es) that has a table managing the persistence of the fields of the supplied class. |
AbstractClassMetaData |
getClassWithPrimaryKeyForClass(AbstractClassMetaData cmd,
ClassLoaderResolver clr)
Utility to navigate the inheritance hierarchy to find the base class that defines the primary keys for this tree. |
DatastoreAdapter |
getDatastoreAdapter()
Gets the DatastoreAdapter to use for this store. |
DatastoreClass |
getDatastoreClass(DatastoreIdentifier name)
Returns the datastore table having the given SQL identifier. |
DatastoreClass |
getDatastoreClass(java.lang.String className,
ClassLoaderResolver clr)
Returns the primary datastore table serving as backing for the given class. |
DatastoreContainerObject |
getDatastoreContainerObject(AbstractMemberMetaData mmd)
Returns the datastore container (table) for the specified field. |
java.lang.String |
getDefaultIdentifierCase()
Method to return the default identifier case. |
abstract FieldManager |
getFieldManagerForResultProcessing(ObjectProvider sm,
java.lang.Object resultSet,
StatementClassMapping resultMappings)
Method to return a FieldManager for extracting information from the supplied results. |
abstract FieldManager |
getFieldManagerForStatementGeneration(ObjectProvider sm,
java.lang.Object stmt,
StatementClassMapping stmtMappings,
boolean checkNonNullable)
Method to return a FieldManager for populating information in statements. |
IdentifierFactory |
getIdentifierFactory()
Accessor for the factory for creating identifiers (table/column names etc). |
MappedTypeManager |
getMappedTypeManager()
Accessor for the manager of mapped type information. |
MappingManager |
getMappingManager()
Gets the MappingManager to use for this store. |
abstract java.lang.Object |
getResultValueAtPosition(java.lang.Object resultSet,
JavaTypeMapping mapping,
int position)
Method to return the value from the results at the specified position. |
StoreData[] |
getStoreDataForDatastoreContainerObject(DatastoreIdentifier tableIdentifier)
Utility to return all StoreData for a Datastore Container identifier. |
protected void |
initialiseIdentifierFactory(OMFContext omfContext)
Method to create the IdentifierFactory to be used by this store. |
abstract boolean |
insertValuesOnInsert(DatastoreMapping datastoreMapping)
Accessor for whether this mapping requires values inserting on an INSERT. |
boolean |
isObjectInserted(ObjectProvider sm,
int fieldNumber)
Accessor for whether the specified field of the object is inserted in the datastore yet. |
boolean |
isObjectInserted(ObjectProvider sm,
java.lang.String className)
Returns whether this object is inserted in the datastore far enough to be considered to be the supplied type. |
protected abstract FKArrayStore |
newFKArrayStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
Method to create a backing store for an array managed via FK. |
protected abstract FKListStore |
newFKListStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
Method to create a backing store for a list managed via FK. |
protected abstract FKMapStore |
newFKMapStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
Method to create a backing store for a map managed via FK. |
protected abstract FKSetStore |
newFKSetStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
Method to create a backing store for a set managed via FK. |
protected abstract JoinArrayStore |
newJoinArrayStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
Method to create a backing store for an array managed via join. |
abstract DatastoreContainerObject |
newJoinDatastoreContainerObject(AbstractMemberMetaData mmd,
ClassLoaderResolver clr)
Called by Mapping objects to request the creation of a DatastoreObject (table). |
protected abstract JoinListStore |
newJoinListStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
Method to create a backing store for a list managed via join. |
protected abstract JoinMapStore |
newJoinMapStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
Method to create a backing store for a map managed via join. |
protected abstract JoinSetStore |
newJoinSetStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
Method to create a backing store for a set managed via join. |
protected abstract PersistableRelationStore |
newPersistableRelationStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
Method to create a backing store for a "persistable relation" (N-1 uni via join). |
abstract ResultObjectFactory |
newResultObjectFactory(AbstractClassMetaData acmd,
StatementClassMapping mappingDefinition,
boolean ignoreCache,
FetchPlan fetchPlan,
java.lang.Class persistentClass)
Factory method for allocating a ResultObjectFactory of the appropriate concrete type. |
void |
setObjectIsInsertedToLevel(ObjectProvider sm,
DatastoreClass table)
Method to set that the specified object is inserted down to the defined datastore class. |
boolean |
supportsValueStrategy(java.lang.String strategy)
Accessor for whether this value strategy is supported. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected DatastoreAdapter dba
protected IdentifierFactory identifierFactory
protected final boolean autoCreateTables
protected final boolean autoCreateColumns
protected final boolean autoCreateConstraints
protected final boolean autoCreateWarnOnError
protected final boolean validateTables
protected final boolean validateColumns
protected final boolean validateConstraints
protected java.lang.String catalogName
protected java.lang.String schemaName
protected java.util.Map<DatastoreIdentifier,DatastoreContainerObject> datastoreContainerByIdentifier
protected MappedTypeManager mappedTypeMgr
protected MappingManager mappingManager
protected java.util.Map<ObjectProvider,DatastoreClass> insertedDatastoreClassByStateManager
| Constructor Detail |
|---|
protected MappedStoreManager(java.lang.String key,
ClassLoaderResolver clr,
OMFContext omfContext)
key - Key for this StoreManagerclr - the ClassLoaderResolveromfContext - The corresponding ObjectManagerFactory context.| Method Detail |
|---|
public void close()
StoreManager
close in interface StoreManagerclose in class AbstractStoreManagerprotected void initialiseIdentifierFactory(OMFContext omfContext)
omfContext - ObjectManagerFactory contextpublic boolean supportsValueStrategy(java.lang.String strategy)
supportsValueStrategy in interface StoreManagersupportsValueStrategy in class AbstractStoreManagerstrategy - The strategy
public MappedTypeManager getMappedTypeManager()
public IdentifierFactory getIdentifierFactory()
public DatastoreAdapter getDatastoreAdapter()
public MappingManager getMappingManager()
public abstract DatastoreContainerObject newJoinDatastoreContainerObject(AbstractMemberMetaData mmd,
ClassLoaderResolver clr)
mmd - The metadata describing the memberclr - The ClassLoaderResolver
public StoreData[] getStoreDataForDatastoreContainerObject(DatastoreIdentifier tableIdentifier)
tableIdentifier - Identifier for the table
public DatastoreContainerObject getDatastoreContainerObject(AbstractMemberMetaData mmd)
mmd - The metadata for the field.
public void addDatastoreContainer(DatastoreContainerObject table)
table - The datastore container
public DatastoreClass getDatastoreClass(java.lang.String className,
ClassLoaderResolver clr)
AbstractStoreManager.addClass(java.lang.String, org.datanucleus.ClassLoaderResolver)is called
to add it. Classes which have inheritance strategy of "new-table" and
"superclass-table" will return a table here, whereas "subclass-table" will
return null since it doesn't have a table as such.
className - Name of the class whose table is be returned.clr - The ClassLoaderResolver
NoTableManagedException - If the given class has no table managed in the database.public DatastoreClass getDatastoreClass(DatastoreIdentifier name)
name - The identifier name of the table.
public AbstractClassMetaData getClassWithPrimaryKeyForClass(AbstractClassMetaData cmd,
ClassLoaderResolver clr)
cmd - AbstractClassMetaData for this classclr - The ClassLoaderResolver
public AbstractClassMetaData[] getClassesManagingTableForClass(AbstractClassMetaData cmd,
ClassLoaderResolver clr)
cmd - The supplied class.clr - ClassLoader resolver
public boolean isObjectInserted(ObjectProvider sm,
int fieldNumber)
sm - StateManager for the objectfieldNumber - (Absolute) field number for the object
public boolean isObjectInserted(ObjectProvider sm,
java.lang.String className)
sm - StateManager for the objectclassName - Name of class that we want to check the insertion level for.
public void setObjectIsInsertedToLevel(ObjectProvider sm,
DatastoreClass table)
sm - StateManager for the objecttable - Table to which it is now inserted
public Store getBackingStoreForField(ClassLoaderResolver clr,
AbstractMemberMetaData mmd,
java.lang.Class type)
getBackingStoreForField in interface StoreManagergetBackingStoreForField in class AbstractStoreManagerclr - The ClassLoaderResolvermmd - metadata for the member to be persisted by this Storetype - instantiated type or prefered type
public abstract FieldManager getFieldManagerForResultProcessing(ObjectProvider sm,
java.lang.Object resultSet,
StatementClassMapping resultMappings)
sm - StateManager for the objectresultSet - The resultsresultMappings - Mappings of the results for this class
public abstract FieldManager getFieldManagerForStatementGeneration(ObjectProvider sm,
java.lang.Object stmt,
StatementClassMapping stmtMappings,
boolean checkNonNullable)
sm - The state manager for the object.stmt - The input Statement to set values on.stmtMappings - Mappings of the input parameterscheckNonNullable - Whether to check for nullability
public abstract java.lang.Object getResultValueAtPosition(java.lang.Object resultSet,
JavaTypeMapping mapping,
int position)
resultSet - The resultsmapping - The mappingposition - The position
public abstract boolean insertValuesOnInsert(DatastoreMapping datastoreMapping)
datastoreMapping - The datastore mapping
public abstract boolean allowsBatching()
public abstract ResultObjectFactory newResultObjectFactory(AbstractClassMetaData acmd,
StatementClassMapping mappingDefinition,
boolean ignoreCache,
FetchPlan fetchPlan,
java.lang.Class persistentClass)
ResultObjectFactory of the appropriate concrete type.
acmd - MetaData for the classmappingDefinition - Mapping of the class from the result setignoreCache - Whether to ignore the cachefetchPlan - the Fetch PlanpersistentClass - Class that this factory will create instances of (or subclasses)
protected abstract FKArrayStore newFKArrayStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
clr - ClassLoader resolvermmd - Metadata for the member
protected abstract FKListStore newFKListStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
clr - ClassLoader resolvermmd - Metadata for the member
protected abstract FKSetStore newFKSetStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
clr - ClassLoader resolvermmd - Metadata for the member
protected abstract FKMapStore newFKMapStore(AbstractMemberMetaData clr,
ClassLoaderResolver mmd)
clr - ClassLoader resolvermmd - Metadata for the member
protected abstract JoinArrayStore newJoinArrayStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
mmd - Metadata for the memberclr - ClassLoader resolverjoinTable - The join table
protected abstract JoinMapStore newJoinMapStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
mmd - Metadata for the memberclr - ClassLoader resolverjoinTable - The join table
protected abstract JoinListStore newJoinListStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
mmd - Metadata for the memberclr - ClassLoader resolverjoinTable - The join table
protected abstract JoinSetStore newJoinSetStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
mmd - Metadata for the memberclr - ClassLoader resolverjoinTable - The join table
protected abstract PersistableRelationStore newPersistableRelationStore(AbstractMemberMetaData mmd,
ClassLoaderResolver clr,
DatastoreContainerObject joinTable)
mmd - Metadata for the memberclr - ClassLoader resolverjoinTable - The join table
public java.lang.String getDefaultIdentifierCase()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||