Class AbstractCollectionStore<E>
- java.lang.Object
-
- org.datanucleus.store.rdbms.scostore.BaseContainerStore
-
- org.datanucleus.store.rdbms.scostore.ElementContainerStore
-
- org.datanucleus.store.rdbms.scostore.AbstractCollectionStore<E>
-
- All Implemented Interfaces:
org.datanucleus.store.types.scostore.CollectionStore<E>,org.datanucleus.store.types.scostore.Store
- Direct Known Subclasses:
AbstractListStore,AbstractSetStore,MapValueCollectionStore
public abstract class AbstractCollectionStore<E> extends ElementContainerStore implements org.datanucleus.store.types.scostore.CollectionStore<E>
Abstract representation of a store of a Collection. Contains all common parts of storing Sets and Lists.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringcontainsStmt-
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 Modifier Constructor Description protectedAbstractCollectionStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontains(org.datanucleus.state.DNStateManager sm, java.lang.Object element)private java.lang.StringgetContainsStatementString(java.lang.Object element)private java.lang.StringgetContainsStmt(java.lang.Object element)Generate statement for retrieving the contents of the Collection.private java.lang.StringgetRemoveStatementString(java.lang.Object element)protected java.lang.StringgetRemoveStmt(java.lang.Object element)Generate statement for removing an element from the Collection.protected java.lang.StringgetUpdateEmbeddedElementStmt(JavaTypeMapping fieldMapping)Generate statement for update the field of an embedded element.voidupdate(org.datanucleus.state.DNStateManager sm, java.util.Collection<? extends E> coll)booleanupdateEmbeddedElement(org.datanucleus.state.DNStateManager sm, E element, int fieldNumber, java.lang.Object value)Method to update a field of an embedded element.-
Methods inherited from class org.datanucleus.store.rdbms.scostore.ElementContainerStore
clear, getAddStmtForJoinTable, getClearStmt, getComponentInfoForElement, getContainerTable, getElementClassMetaData, getElementMapping, getRelationDiscriminatorMapping, getRelationDiscriminatorValue, getSize, getSizeStmt, hasOrderMapping, invalidateAddStmt, isElementsAreEmbedded, isElementsAreSerialised, iterator, 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
-
-
-
-
Constructor Detail
-
AbstractCollectionStore
protected AbstractCollectionStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr)
Constructor.- Parameters:
storeMgr- Manager for the storeclr- ClassLoader resolver
-
-
Method Detail
-
update
public void update(org.datanucleus.state.DNStateManager sm, java.util.Collection<? extends E> coll)- Specified by:
updatein interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>
-
contains
public boolean contains(org.datanucleus.state.DNStateManager sm, java.lang.Object element)- Specified by:
containsin interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>
-
getContainsStmt
private java.lang.String getContainsStmt(java.lang.Object element)
Generate statement for retrieving the contents of the Collection. The discriminator part is only present when the element type has inheritance strategy of "superclass-table" and is Inverse.SELECT OWNERCOL FROM COLLECTIONTABLE WHERE OWNERCOL=? AND ELEMENTCOL=? [AND DISCRIMINATOR=?] [AND RELATION_DISCRIM=?]
- Returns:
- Statement for retrieving the contents of the Collection.
-
getContainsStatementString
private java.lang.String getContainsStatementString(java.lang.Object element)
-
getRemoveStmt
protected java.lang.String getRemoveStmt(java.lang.Object element)
Generate statement for removing an element from the Collection.DELETE FROM COLLTABLE WHERE OWNERCOL=? AND ELEMENTCOL = ?
- Parameters:
element- The element to remove- Returns:
- Statement for deleting an item from the Collection.
-
getRemoveStatementString
private java.lang.String getRemoveStatementString(java.lang.Object element)
-
updateEmbeddedElement
public boolean updateEmbeddedElement(org.datanucleus.state.DNStateManager sm, E element, int fieldNumber, java.lang.Object value)Method to update a field of an embedded element.- Specified by:
updateEmbeddedElementin interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>- Parameters:
sm- StateManager of the ownerelement- The element to updatefieldNumber- The number of the field to updatevalue- The value- Returns:
- true if the datastore was updated
-
getUpdateEmbeddedElementStmt
protected java.lang.String getUpdateEmbeddedElementStmt(JavaTypeMapping fieldMapping)
Generate statement for update the field of an embedded element.UPDATE SETTABLE SET EMBEDDEDFIELD1 = ? WHERE OWNERCOL=? AND ELEMENTCOL = ?
- Parameters:
fieldMapping- The mapping for the field within the embedded object to be updated- Returns:
- Statement for updating an embedded element in the Set
-
-