org.eclipse.persistence.queries
Class CursorPolicy

java.lang.Object
  extended by org.eclipse.persistence.internal.queries.ContainerPolicy
      extended by org.eclipse.persistence.queries.CursorPolicy
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
CursoredStreamPolicy, ScrollableCursorPolicy

public abstract class CursorPolicy
extends org.eclipse.persistence.internal.queries.ContainerPolicy

Purpose: Abstract class for all Cursor-related policy objects

See Also:
Serialized Form

Constructor Summary
CursorPolicy()
          INTERNAL: default constructor
CursorPolicy(ReadQuery query, int pageSize)
          INTERNAL:
 
Method Summary
 org.eclipse.persistence.internal.queries.ContainerPolicy clone(ReadQuery query)
          INTERNAL:
 CollectionChangeEvent createChangeEvent(Object collectionOwner, String propertyName, Object collectionChanged, Object elementChanged, int changeType, Integer index)
          INTERNAL: Creates a CollectionChangeEvent for the container
abstract  Object execute()
          INTERNAL: Execute the cursored select and build the stream.
 int getPageSize()
          Return the number of elements to be read into a cursored stream when more elements are needed from the database.
 ReadQuery getQuery()
          INTERNAL: Return the query.
 boolean hasNext(Object iterator)
          INTERNAL: Return whether the iterator has more objects.
 boolean isCursorPolicy()
           
 Object iteratorFor(Object container)
          INTERNAL: Return an iterator for the given container.
 boolean overridesRead()
          INTERNAL: This can be used by collection such as cursored stream to gain control over execution.
 void prepare(DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Prepare and validate.
abstract  Object remoteExecute()
          INTERNAL: Execute the cursored select and build the stream.
 void setPageSize(int pageSize)
          Set the number of elements to be read into a cursored stream when more elements are needed from the database.
 void setQuery(ReadQuery query)
          INTERNAL: Set the query.
 int sizeFor(Object container)
          INTERNAL: Return the size of container.
 
Methods inherited from class org.eclipse.persistence.internal.queries.ContainerPolicy
addAdditionalFieldsToQuery, addAll, addAll, addFieldsForMapKey, addInto, addInto, addInto, addInto, addNestedJoinsQueriesForMapKey, addNextValueFromIteratorInto, buildChangeSetForNewObjectInCollection, buildCloneForKey, buildCollectionEntry, buildContainerFromVector, buildDefaultPolicy, buildKey, buildKeyFromJoinedRow, buildPolicyFor, buildPolicyFor, buildReferencesPKList, buildSelectionQueryForDirectCollectionMapping, cascadeDiscoverAndPersistUnregisteredNewObjects, cascadePerformRemoveIfRequired, cascadeRegisterNewIfRequired, clear, clone, cloneFor, compareCollectionsForChange, compareKeys, concatenateContainers, containerInstance, containerInstance, contains, convertClassNamesToClasses, copyMapDataToRow, createWrappedObjectFromExistingWrappedObject, deleteWrappedObject, equals, getAdditionalFieldsForJoin, getAdditionalTablesForJoinQuery, getChangeValuesFrom, getCloneDataFromChangeSet, getContainerClass, getContainerClassName, getDefaultContainerClass, getDescriptorForMapKey, getElementDescriptor, getIdentityFieldsForMapKey, getKeyMappingDataForWriteQuery, getKeySelectionCriteria, getKeyType, hasElementDescriptor, hasOrder, initialize, initializeConstructor, isCollectionPolicy, isCursoredStreamPolicy, isDirectMapPolicy, isEmpty, isListPolicy, isMapKeyObject, isMappedKeyMapPolicy, isMapPolicy, isOrderedListPolicy, isScrollableCursorPolicy, isValidContainer, isValidContainerType, iterateOnMapKey, keyFrom, keyFromEntry, keyFromIterator, mergeCascadeParts, mergeChanges, next, nextEntry, nextEntry, postCalculateChanges, postCalculateChanges, postInitialize, prepareForExecution, processAdditionalWritableMapKeyFields, propagatesEventsToCollection, propogatePostDelete, propogatePostInsert, propogatePostUpdate, propogatePreDelete, propogatePreInsert, propogatePreUpdate, recordAddToCollectionInChangeRecord, recordPrivateOwnedRemovals, recordRemoveFromCollectionInChangeRecord, recordUpdateToCollectionInChangeRecord, removeFrom, removeFrom, requiresDataModificationEvents, setContainerClass, setContainerClassName, setDefaultContainerClass, setElementDescriptor, setKeyName, setKeyName, shouldAddAll, shouldIncludeKeyInDeleteEvent, shouldUpdateForeignKeysPostInsert, toString, unwrapElement, unwrapIteratorResult, updateJoinedMappingIndexesForMapKey, valueFromPKList, vectorFor
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CursorPolicy

public CursorPolicy()
INTERNAL: default constructor


CursorPolicy

public CursorPolicy(ReadQuery query,
                    int pageSize)
INTERNAL:

Method Detail

clone

public org.eclipse.persistence.internal.queries.ContainerPolicy clone(ReadQuery query)
INTERNAL:

Overrides:
clone in class org.eclipse.persistence.internal.queries.ContainerPolicy

createChangeEvent

public CollectionChangeEvent createChangeEvent(Object collectionOwner,
                                               String propertyName,
                                               Object collectionChanged,
                                               Object elementChanged,
                                               int changeType,
                                               Integer index)
INTERNAL: Creates a CollectionChangeEvent for the container

Specified by:
createChangeEvent in class org.eclipse.persistence.internal.queries.ContainerPolicy

execute

public abstract Object execute()
INTERNAL: Execute the cursored select and build the stream.

Overrides:
execute in class org.eclipse.persistence.internal.queries.ContainerPolicy

getPageSize

public int getPageSize()
Return the number of elements to be read into a cursored stream when more elements are needed from the database.


getQuery

public ReadQuery getQuery()
INTERNAL: Return the query.


hasNext

public boolean hasNext(Object iterator)
INTERNAL: Return whether the iterator has more objects.

Specified by:
hasNext in class org.eclipse.persistence.internal.queries.ContainerPolicy
Parameters:
iterator - java.lang.Object
Returns:
boolean true if iterator has more objects
See Also:
ContainerPolicy.iteratorFor(java.lang.Object)

isCursorPolicy

public boolean isCursorPolicy()
Overrides:
isCursorPolicy in class org.eclipse.persistence.internal.queries.ContainerPolicy

iteratorFor

public Object iteratorFor(Object container)
INTERNAL: Return an iterator for the given container. This iterator can then be used as a parameter to #hasNext() and #next().

Specified by:
iteratorFor in class org.eclipse.persistence.internal.queries.ContainerPolicy
See Also:
ContainerPolicy.hasNext(java.lang.Object), ContainerPolicy.next(java.lang.Object)

overridesRead

public boolean overridesRead()
INTERNAL: This can be used by collection such as cursored stream to gain control over execution.

Overrides:
overridesRead in class org.eclipse.persistence.internal.queries.ContainerPolicy

prepare

public void prepare(DatabaseQuery query,
                    org.eclipse.persistence.internal.sessions.AbstractSession session)
             throws QueryException
INTERNAL: Prepare and validate.

Overrides:
prepare in class org.eclipse.persistence.internal.queries.ContainerPolicy
Throws:
QueryException

remoteExecute

public abstract Object remoteExecute()
INTERNAL: Execute the cursored select and build the stream.

Overrides:
remoteExecute in class org.eclipse.persistence.internal.queries.ContainerPolicy

setPageSize

public void setPageSize(int pageSize)
Set the number of elements to be read into a cursored stream when more elements are needed from the database.


setQuery

public void setQuery(ReadQuery query)
INTERNAL: Set the query.


sizeFor

public int sizeFor(Object container)
INTERNAL: Return the size of container.

Overrides:
sizeFor in class org.eclipse.persistence.internal.queries.ContainerPolicy