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.String
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 Modifier Constructor Description protected
AbstractCollectionStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
contains(org.datanucleus.state.DNStateManager sm, java.lang.Object element)
private java.lang.String
getContainsStatementString(java.lang.Object element)
private java.lang.String
getContainsStmt(java.lang.Object element)
Generate statement for retrieving the contents of the Collection.private java.lang.String
getRemoveStatementString(java.lang.Object element)
protected java.lang.String
getRemoveStmt(java.lang.Object element)
Generate statement for removing an element from the Collection.protected java.lang.String
getUpdateEmbeddedElementStmt(JavaTypeMapping fieldMapping)
Generate statement for update the field of an embedded element.void
update(org.datanucleus.state.DNStateManager sm, java.util.Collection<? extends E> coll)
boolean
updateEmbeddedElement(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:
update
in interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>
-
contains
public boolean contains(org.datanucleus.state.DNStateManager sm, java.lang.Object element)
- Specified by:
contains
in 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:
updateEmbeddedElement
in 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
-
-