Class BaseContainerStore
- java.lang.Object
-
- org.datanucleus.store.rdbms.scostore.BaseContainerStore
-
- All Implemented Interfaces:
org.datanucleus.store.types.scostore.Store
- Direct Known Subclasses:
AbstractMapStore,ElementContainerStore
public abstract class BaseContainerStore extends Object implements org.datanucleus.store.types.scostore.Store
Base class for all mapped container stores (collections, maps, arrays). Provides a series of helper methods for handling the store process.
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanallowNullsWhether the container allows null elements/values.protected org.datanucleus.ClassLoaderResolverclrprotected DatastoreAdapterdbaDatastore adapter in use by this store.protected JavaTypeMappingownerMappingMapping to the owner of the container.protected org.datanucleus.metadata.AbstractMemberMetaDataownerMemberMetaDataMetaData for the field/property in the owner with this container.protected org.datanucleus.metadata.RelationTyperelationTypeType of relation (1-N uni, 1-N bi, M-N).protected RDBMSStoreManagerstoreMgrManager for the store.
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseContainerStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanallowsBatching()Convenience method to return if the datastore supports batching and the user wants batching.protected ComponentInfo[]getComponentInformationForClass(String componentType, org.datanucleus.metadata.AbstractClassMetaData componentCmd)Convenience method to find the element information relating to the element type.DatastoreAdaptergetDatastoreAdapter()JavaTypeMappinggetOwnerMapping()org.datanucleus.metadata.AbstractMemberMetaDatagetOwnerMemberMetaData()org.datanucleus.metadata.RelationTypegetRelationType()org.datanucleus.state.DNStateManagergetStateManagerForEmbeddedPCObject(org.datanucleus.state.DNStateManager ownerSM, Object obj, org.datanucleus.metadata.AbstractMemberMetaData ownerMmd, org.datanucleus.PersistableObjectType objectType)Method to return StateManager for an embedded PC object (element, key, value).RDBMSStoreManagergetStoreManager()protected booleanisEmbeddedMapping(JavaTypeMapping mapping)Check if the mapping correspond to a non pc object or embedded fieldprotected voidsetOwner(org.datanucleus.metadata.AbstractMemberMetaData mmd)Method to set the owner for this backing store.
-
-
-
Field Detail
-
storeMgr
protected RDBMSStoreManager storeMgr
Manager for the store.
-
dba
protected DatastoreAdapter dba
Datastore adapter in use by this store.
-
ownerMapping
protected JavaTypeMapping ownerMapping
Mapping to the owner of the container.
-
ownerMemberMetaData
protected org.datanucleus.metadata.AbstractMemberMetaData ownerMemberMetaData
MetaData for the field/property in the owner with this container.
-
relationType
protected org.datanucleus.metadata.RelationType relationType
Type of relation (1-N uni, 1-N bi, M-N).
-
allowNulls
protected boolean allowNulls
Whether the container allows null elements/values.
-
clr
protected org.datanucleus.ClassLoaderResolver clr
-
-
Constructor Detail
-
BaseContainerStore
protected BaseContainerStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr)
Constructor.- Parameters:
storeMgr- Manager for the datastore being usedclr- ClassLoader resolver
-
-
Method Detail
-
setOwner
protected void setOwner(org.datanucleus.metadata.AbstractMemberMetaData mmd)
Method to set the owner for this backing store. Sets the metadata of the owner field/property, as well as whether nulls are allowed, and the relation type.- Parameters:
mmd- MetaData for the member owning this backing store.
-
getStoreManager
public RDBMSStoreManager getStoreManager()
- Specified by:
getStoreManagerin interfaceorg.datanucleus.store.types.scostore.Store
-
getOwnerMapping
public JavaTypeMapping getOwnerMapping()
-
getRelationType
public org.datanucleus.metadata.RelationType getRelationType()
-
getOwnerMemberMetaData
public org.datanucleus.metadata.AbstractMemberMetaData getOwnerMemberMetaData()
- Specified by:
getOwnerMemberMetaDatain interfaceorg.datanucleus.store.types.scostore.Store
-
getDatastoreAdapter
public DatastoreAdapter getDatastoreAdapter()
-
isEmbeddedMapping
protected boolean isEmbeddedMapping(JavaTypeMapping mapping)
Check if the mapping correspond to a non pc object or embedded field- Parameters:
mapping- the mapping- Returns:
- true if the field is embedded into one column
-
getStateManagerForEmbeddedPCObject
public org.datanucleus.state.DNStateManager getStateManagerForEmbeddedPCObject(org.datanucleus.state.DNStateManager ownerSM, Object obj, org.datanucleus.metadata.AbstractMemberMetaData ownerMmd, org.datanucleus.PersistableObjectType objectType)Method to return StateManager for an embedded PC object (element, key, value). It creates one if the element is not currently managed.- Parameters:
ownerSM- StateManager of the ownerobj- The embedded PC objectownerMmd- The meta data for the owner fieldobjectType- Type of object that is persisted embedded/serialised- Returns:
- StateManager for the embedded object
-
allowsBatching
protected boolean allowsBatching()
Convenience method to return if the datastore supports batching and the user wants batching.- Returns:
- If batching of statements is permissible
-
getComponentInformationForClass
protected ComponentInfo[] getComponentInformationForClass(String componentType, org.datanucleus.metadata.AbstractClassMetaData componentCmd)
Convenience method to find the element information relating to the element type. Used specifically for the "element-type" of a collection/array to find the elements which have table information.- Parameters:
componentType- Type of the componentcomponentCmd- Metadata for the root component class TODO Get rid of this- Returns:
- Element information relating to the element type
-
-