Class MapKeySetStore<K>
- java.lang.Object
-
- org.datanucleus.store.rdbms.scostore.BaseContainerStore
-
- org.datanucleus.store.rdbms.scostore.ElementContainerStore
-
- org.datanucleus.store.rdbms.scostore.AbstractCollectionStore<E>
-
- org.datanucleus.store.rdbms.scostore.AbstractSetStore<K>
-
- org.datanucleus.store.rdbms.scostore.MapKeySetStore<K>
-
- All Implemented Interfaces:
org.datanucleus.store.types.scostore.CollectionStore<K>
,org.datanucleus.store.types.scostore.SetStore<K>
,org.datanucleus.store.types.scostore.Store
class MapKeySetStore<K> extends AbstractSetStore<K>
Implementation of a backing SetStore for map keys.
-
-
Field Summary
Fields Modifier and Type Field Description private StatementClassMapping
iteratorMappingDef
private StatementParameterMapping
iteratorMappingParams
private java.lang.String
iteratorStmtLocked
JDBC statement to use for retrieving keys of the map (locking).private java.lang.String
iteratorStmtUnlocked
JDBC statement to use for retrieving keys of the map (not locking).protected org.datanucleus.store.types.scostore.MapStore<K,?>
mapStore
Backing store for the map.-
Fields inherited from class org.datanucleus.store.rdbms.scostore.AbstractCollectionStore
containsStmt
-
Fields inherited from class org.datanucleus.store.rdbms.scostore.ElementContainerStore
addStmt, clearStmt, containerTable, elementCmd, elementInfo, elementIsPersistentInterface, elementMapping, elementsAreEmbedded, elementsAreSerialised, elementType, iterateUsingDiscriminator, orderMapping, relationDiscriminatorMapping, relationDiscriminatorValue, removeStmt, sizeStmt
-
Fields inherited from class org.datanucleus.store.rdbms.scostore.BaseContainerStore
allowNulls, clr, dba, ownerMapping, ownerMemberMetaData, relationType, storeMgr
-
-
Constructor Summary
Constructors Constructor Description MapKeySetStore(DatastoreClass mapTable, FKMapStore<K,?> mapStore, org.datanucleus.ClassLoaderResolver clr)
Constructor where a foreign key is used to store the map relation.MapKeySetStore(MapTable mapTable, JoinMapStore<K,?> mapStore, org.datanucleus.ClassLoaderResolver clr)
Constructor where a join table is used to store the map relation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(org.datanucleus.state.DNStateManager sm, K key, int size)
boolean
addAll(org.datanucleus.state.DNStateManager sm, java.util.Collection keys, int size)
void
clear(org.datanucleus.state.DNStateManager sm)
Clear the association from owner to all elements.protected SelectStatement
getSQLStatementForIterator(org.datanucleus.state.DNStateManager ownerSM)
Method to generate an SQLStatement for iterating through keys of the map.private void
initialize(org.datanucleus.ClassLoaderResolver clr)
Initialisation method.java.util.Iterator<K>
iterator(org.datanucleus.state.DNStateManager ownerSM)
Accessor for an iterator for the set.boolean
remove(org.datanucleus.state.DNStateManager sm, java.lang.Object key, int size, boolean allowDependentField)
boolean
removeAll(org.datanucleus.state.DNStateManager sm, java.util.Collection keys, int size)
-
Methods inherited from class org.datanucleus.store.rdbms.scostore.AbstractCollectionStore
contains, getRemoveStmt, getUpdateEmbeddedElementStmt, update, updateEmbeddedElement
-
Methods inherited from class org.datanucleus.store.rdbms.scostore.ElementContainerStore
getAddStmtForJoinTable, getClearStmt, getComponentInfoForElement, getContainerTable, getElementClassMetaData, getElementMapping, getRelationDiscriminatorMapping, getRelationDiscriminatorValue, getSize, getSizeStmt, hasOrderMapping, invalidateAddStmt, isElementsAreEmbedded, isElementsAreSerialised, size, usingJoinTable, validateElementForReading, validateElementForWriting, validateElementType
-
Methods inherited from class org.datanucleus.store.rdbms.scostore.BaseContainerStore
allowsBatching, getComponentInformationForClass, getDatastoreAdapter, getOwnerMapping, getOwnerMemberMetaData, getRelationType, getStateManagerForEmbeddedPCObject, getStoreManager, isEmbeddedMapping, setOwner
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Field Detail
-
mapStore
protected final org.datanucleus.store.types.scostore.MapStore<K,?> mapStore
Backing store for the map.
-
iteratorStmtLocked
private java.lang.String iteratorStmtLocked
JDBC statement to use for retrieving keys of the map (locking).
-
iteratorStmtUnlocked
private java.lang.String iteratorStmtUnlocked
JDBC statement to use for retrieving keys of the map (not locking).
-
iteratorMappingDef
private StatementClassMapping iteratorMappingDef
-
iteratorMappingParams
private StatementParameterMapping iteratorMappingParams
-
-
Constructor Detail
-
MapKeySetStore
MapKeySetStore(MapTable mapTable, JoinMapStore<K,?> mapStore, org.datanucleus.ClassLoaderResolver clr)
Constructor where a join table is used to store the map relation.- Parameters:
mapTable
- Join table used by the map (join table)mapStore
- Backing store for the mapclr
- The ClassLoaderResolver
-
MapKeySetStore
MapKeySetStore(DatastoreClass mapTable, FKMapStore<K,?> mapStore, org.datanucleus.ClassLoaderResolver clr)
Constructor where a foreign key is used to store the map relation.- Parameters:
mapTable
- Table holding the map relation (key or value)mapStore
- Backing store for the mapclr
- The ClassLoaderResolver
-
-
Method Detail
-
initialize
private void initialize(org.datanucleus.ClassLoaderResolver clr)
Initialisation method.
-
add
public boolean add(org.datanucleus.state.DNStateManager sm, K key, int size)
-
addAll
public boolean addAll(org.datanucleus.state.DNStateManager sm, java.util.Collection keys, int size)
-
remove
public boolean remove(org.datanucleus.state.DNStateManager sm, java.lang.Object key, int size, boolean allowDependentField)
- Specified by:
remove
in interfaceorg.datanucleus.store.types.scostore.CollectionStore<K>
- Overrides:
remove
in classAbstractSetStore<K>
-
removeAll
public boolean removeAll(org.datanucleus.state.DNStateManager sm, java.util.Collection keys, int size)
-
clear
public void clear(org.datanucleus.state.DNStateManager sm)
Description copied from class:ElementContainerStore
Clear the association from owner to all elements. Provides cascade-delete when the elements being deleted are PC types.- Specified by:
clear
in interfaceorg.datanucleus.store.types.scostore.CollectionStore<K>
- Overrides:
clear
in classElementContainerStore
- Parameters:
sm
- StateManager for the container.
-
iterator
public java.util.Iterator<K> iterator(org.datanucleus.state.DNStateManager ownerSM)
Accessor for an iterator for the set.- Specified by:
iterator
in interfaceorg.datanucleus.store.types.scostore.CollectionStore<K>
- Specified by:
iterator
in classAbstractSetStore<K>
- Parameters:
ownerSM
- StateManager for the set.- Returns:
- Iterator for the set.
-
getSQLStatementForIterator
protected SelectStatement getSQLStatementForIterator(org.datanucleus.state.DNStateManager ownerSM)
Method to generate an SQLStatement for iterating through keys of the map. Populates the iteratorMappingDef and iteratorMappingParams. Creates a statement that selects the key table(s), and adds any necessary join to the containerTable if that is not the key table. If the key is embedded then selects the table it is embedded in. Adds a restriction on the ownerMapping of the containerTable so we can restrict to the owner object.- Parameters:
ownerSM
- StateManager for the owner object- Returns:
- The SQLStatement
-
-