Class 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 Detail

      • 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 used
        clr - 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 interface org.datanucleus.store.types.scostore.Store
      • 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
      • 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