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 boolean
allowNulls
Whether the container allows null elements/values.protected org.datanucleus.ClassLoaderResolver
clr
protected DatastoreAdapter
dba
Datastore adapter in use by this store.protected JavaTypeMapping
ownerMapping
Mapping to the owner of the container.protected org.datanucleus.metadata.AbstractMemberMetaData
ownerMemberMetaData
MetaData for the field/property in the owner with this container.protected org.datanucleus.metadata.RelationType
relationType
Type of relation (1-N uni, 1-N bi, M-N).protected RDBMSStoreManager
storeMgr
Manager for the store.
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseContainerStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
allowsBatching()
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.DatastoreAdapter
getDatastoreAdapter()
JavaTypeMapping
getOwnerMapping()
org.datanucleus.metadata.AbstractMemberMetaData
getOwnerMemberMetaData()
org.datanucleus.metadata.RelationType
getRelationType()
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).RDBMSStoreManager
getStoreManager()
protected boolean
isEmbeddedMapping(JavaTypeMapping mapping)
Check if the mapping correspond to a non pc object or embedded fieldprotected void
setOwner(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:
getStoreManager
in 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:
getOwnerMemberMetaData
in 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
-
-