org.datanucleus.store.mapped.scostore
Class FKArrayStore

java.lang.Object
  extended by org.datanucleus.store.mapped.scostore.BaseContainerStore
      extended by org.datanucleus.store.mapped.scostore.ElementContainerStore
          extended by org.datanucleus.store.mapped.scostore.AbstractArrayStore
              extended by org.datanucleus.store.mapped.scostore.FKArrayStore
All Implemented Interfaces:
ArrayStoreQueryable, ArrayStore, Store

public abstract class FKArrayStore
extends AbstractArrayStore

Backing store for an array that is formed by a foreign key in the table of the element type. Only supported when the element is a PersistenceCapable type (since that has its own element table, capable of having a FK!)


Nested Class Summary
 
Nested classes/interfaces inherited from class org.datanucleus.store.mapped.scostore.ElementContainerStore
ElementContainerStore.ElementInfo
 
Field Summary
 
Fields inherited from class org.datanucleus.store.mapped.scostore.ElementContainerStore
clr, containerTable, elementInfo, elementIsPersistentInterface, elementMapping, elementsAreEmbedded, elementsAreSerialised, elementType, emd, iterateUsingDiscriminator, orderMapping, relationDiscriminatorMapping, relationDiscriminatorValue, specialization
 
Fields inherited from class org.datanucleus.store.mapped.scostore.BaseContainerStore
allowsNull, dba, LOCALISER, ownerMapping, ownerMemberMetaData, relationType, storeMgr
 
Constructor Summary
FKArrayStore(AbstractMemberMetaData fmd, MappedStoreManager storeMgr, ClassLoaderResolver clr, FKArrayStoreSpecialization specialization)
          Constructor.
 
Method Summary
 void clear(ObjectProvider ownerSM)
          Method to clear the Array.
 ScalarExpression joinElementsTo(QueryExpression stmt, QueryExpression parentStmt, JavaTypeMapping ownerMapping, LogicSetExpression ownerTe, DatastoreIdentifier listTableAlias, java.lang.Class filteredElementType, ScalarExpression elmExpr, DatastoreIdentifier elementTableAlias)
          Method used in queries when contains() has been invoked.
 boolean set(ObjectProvider ownerSM, java.lang.Object array)
          Method to set the array for the specified owner to the passed value.
 
Methods inherited from class org.datanucleus.store.mapped.scostore.AbstractArrayStore
add, getArray, getExistsSubquery, getSizeSubquery, iterator
 
Methods inherited from class org.datanucleus.store.mapped.scostore.ElementContainerStore
getContainerTable, getElementInfo, getElementInformationForClass, getElementMapping, getElementType, getEmd, getOrderMapping, getRelationDiscriminatorMapping, getRelationDiscriminatorValue, hasOrderMapping, isElementsAreEmbedded, isElementsAreSerialised, size, validateElementForReading, validateElementForWriting, validateElementType
 
Methods inherited from class org.datanucleus.store.mapped.scostore.BaseContainerStore
allowsBatching, 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
 
Methods inherited from interface org.datanucleus.store.scostore.ArrayStore
getElementType, size
 
Methods inherited from interface org.datanucleus.store.scostore.Store
getStoreManager
 

Constructor Detail

FKArrayStore

public FKArrayStore(AbstractMemberMetaData fmd,
                    MappedStoreManager storeMgr,
                    ClassLoaderResolver clr,
                    FKArrayStoreSpecialization specialization)
Constructor.

Parameters:
fmd - Field MetaData for the field that this represents
storeMgr - The Store Manager in use
clr - The ClassLoaderResolver
Method Detail

clear

public void clear(ObjectProvider ownerSM)
Method to clear the Array. This is called when the container object is being deleted and the elements are to be removed (maybe for dependent field).

Specified by:
clear in interface ArrayStore
Overrides:
clear in class AbstractArrayStore
Parameters:
ownerSM - The state manager

set

public boolean set(ObjectProvider ownerSM,
                   java.lang.Object array)
Method to set the array for the specified owner to the passed value.

Specified by:
set in interface ArrayStore
Overrides:
set in class AbstractArrayStore
Parameters:
ownerSM - State Manager for the owner
array - the array
Returns:
Whether the array was updated successfully

joinElementsTo

public ScalarExpression joinElementsTo(QueryExpression stmt,
                                       QueryExpression parentStmt,
                                       JavaTypeMapping ownerMapping,
                                       LogicSetExpression ownerTe,
                                       DatastoreIdentifier listTableAlias,
                                       java.lang.Class filteredElementType,
                                       ScalarExpression elmExpr,
                                       DatastoreIdentifier elementTableAlias)
Method used in queries when contains() has been invoked.

Parameters:
stmt - The Query Statement
parentStmt - the parent Query Statement. If there is no parent, parentStmt must be equals to stmt
ownerMapping - the mapping for the owner.
ownerTe - Table Expression for the owner
listTableAlias - alias for the "List" table.
filteredElementType - The Class Type for the filtered element
elmExpr - The Expression for the element
elementTableAlias - The SQL alias to assign to the expression for the element table.
Returns:
expression to the join


Copyright © 2010. All Rights Reserved.