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
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 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, Object element)
protected String
getRemoveStmt(Object element)
Generate statement for removing an element from the Collection.protected String
getUpdateEmbeddedElementStmt(JavaTypeMapping fieldMapping)
Generate statement for update the field of an embedded element.void
update(org.datanucleus.state.DNStateManager sm, Collection coll)
boolean
updateEmbeddedElement(org.datanucleus.state.DNStateManager sm, E element, int fieldNumber, 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
-
-
-
-
Field Detail
-
containsStmt
protected String containsStmt
-
-
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, Collection coll)
- Specified by:
update
in interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>
-
contains
public boolean contains(org.datanucleus.state.DNStateManager sm, Object element)
- Specified by:
contains
in interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>
-
getRemoveStmt
protected String getRemoveStmt(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.
-
updateEmbeddedElement
public boolean updateEmbeddedElement(org.datanucleus.state.DNStateManager sm, E element, int fieldNumber, 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 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
-
-