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, MapEntrySetStore

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 Details

    • 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 Details

    • BaseContainerStore

      protected BaseContainerStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr)
      Constructor.
      Parameters:
      storeMgr - Manager for the datastore being used
      clr - ClassLoader resolver
  • Method Details

    • 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 interface org.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 interface org.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 owner
      obj - The embedded PC object
      ownerMmd - The meta data for the owner field
      objectType - 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 component
      componentCmd - Metadata for the root component class TODO Get rid of this
      Returns:
      Element information relating to the element type