Package org.eclipse.persistence.queries
Class CursorPolicy
- java.lang.Object
-
- org.eclipse.persistence.internal.queries.ContainerPolicy
-
- org.eclipse.persistence.queries.CursorPolicy
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,org.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>
- 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
Constructors Constructor Description CursorPolicy()
INTERNAL: default constructorCursorPolicy(ReadQuery query, int pageSize)
INTERNAL:
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description org.eclipse.persistence.internal.queries.ContainerPolicy
clone(ReadQuery query)
INTERNAL:CollectionChangeEvent
createChangeEvent(java.lang.Object collectionOwner, java.lang.String propertyName, java.lang.Object collectionChanged, java.lang.Object elementChanged, int changeType, java.lang.Integer index, boolean isChangeApplied)
INTERNAL: Creates a CollectionChangeEvent for the containerabstract java.lang.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(java.lang.Object iterator)
INTERNAL: Return whether the iterator has more objects.boolean
isCursorPolicy()
java.lang.Object
iteratorFor(java.lang.Object container)
INTERNAL: Return an iterator for the given container.protected java.lang.Object
next(java.lang.Object iterator)
INTERNAL: Return the next object on the queue.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 java.lang.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(java.lang.Object container)
INTERNAL: Return the size of container.protected java.lang.Object
toStringInfo()
-
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, collectObjectForNewCollection, compareCollectionsForChange, compareKeys, concatenateContainers, containerInstance, containerInstance, contains, contains, convertClassNamesToClasses, copyMapDataToRow, createChangeSetForKeys, createWrappedObjectFromExistingWrappedObject, deleteWrappedObject, equals, getAdditionalFieldsForJoin, getAdditionalTablesForJoinQuery, getChangeValuesFrom, getCloneDataFromChangeSet, getConstructor, getContainerClass, getContainerClassName, getDefaultContainerClass, getDescriptorForMapKey, getElementDescriptor, getIdentityFieldsForMapKey, getKeyMappingDataForWriteQuery, getKeySelectionCriteria, getKeyType, hasElementDescriptor, hashCode, hasOrder, initialize, initializeConstructor, isCollectionPolicy, isCursoredStreamPolicy, isDirectMapPolicy, isEmpty, isListPolicy, isMapKeyObject, isMappedKeyMapPolicy, isMapPolicy, isOrderedListPolicy, isScrollableCursorPolicy, isValidContainer, isValidContainerType, iterateOnMapKey, keyFrom, keyFromEntry, keyFromIterator, mergeCascadeParts, mergeChanges, mergeChanges, next, nextEntry, nextEntry, postCalculateChanges, postCalculateChanges, postInitialize, prepareForExecution, processAdditionalWritableMapKeyFields, propagatesEventsToCollection, propogatePostDelete, propogatePostInsert, propogatePostUpdate, propogatePreDelete, propogatePreInsert, propogatePreUpdate, recordAddToCollectionInChangeRecord, recordPrivateOwnedRemovals, recordRemoveFromCollectionInChangeRecord, recordUpdateToCollectionInChangeRecord, removeFrom, removeFrom, removeFrom, requiresDataModificationEvents, setConstructor, setContainerClass, setContainerClassName, setDefaultContainerClass, setElementDescriptor, setKeyName, setKeyName, shouldAddAll, shouldIncludeKeyInDeleteEvent, shouldUpdateForeignKeysPostInsert, toString, unwrapElement, unwrapIteratorResult, updateChangeRecordForSelfMerge, updateJoinedMappingIndexesForMapKey, valueFromPKList, vectorFor
-
-
-
-
Field Detail
-
pageSize
protected int pageSize
-
query
protected ReadQuery query
-
-
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 classorg.eclipse.persistence.internal.queries.ContainerPolicy
-
createChangeEvent
public CollectionChangeEvent createChangeEvent(java.lang.Object collectionOwner, java.lang.String propertyName, java.lang.Object collectionChanged, java.lang.Object elementChanged, int changeType, java.lang.Integer index, boolean isChangeApplied)
INTERNAL: Creates a CollectionChangeEvent for the container- Specified by:
createChangeEvent
in classorg.eclipse.persistence.internal.queries.ContainerPolicy
-
execute
public abstract java.lang.Object execute()
INTERNAL: Execute the cursored select and build the stream.- Overrides:
execute
in classorg.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(java.lang.Object iterator)
INTERNAL: Return whether the iterator has more objects.- Specified by:
hasNext
in interfaceorg.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>
- Specified by:
hasNext
in classorg.eclipse.persistence.internal.queries.ContainerPolicy
- Parameters:
iterator
- java.lang.Object- Returns:
- boolean true if iterator has more objects
-
isCursorPolicy
public boolean isCursorPolicy()
- Overrides:
isCursorPolicy
in classorg.eclipse.persistence.internal.queries.ContainerPolicy
-
iteratorFor
public java.lang.Object iteratorFor(java.lang.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 interfaceorg.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>
- Specified by:
iteratorFor
in classorg.eclipse.persistence.internal.queries.ContainerPolicy
- See Also:
ContainerPolicy.hasNext(java.lang.Object)
,ContainerPolicy.next(java.lang.Object)
-
next
protected java.lang.Object next(java.lang.Object iterator)
INTERNAL: Return the next object on the queue. The iterator is the one returned from #iteratorFor().- Specified by:
next
in classorg.eclipse.persistence.internal.queries.ContainerPolicy
- See Also:
ContainerPolicy.iteratorFor(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 classorg.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 classorg.eclipse.persistence.internal.queries.ContainerPolicy
- Throws:
QueryException
-
remoteExecute
public abstract java.lang.Object remoteExecute()
INTERNAL: Execute the cursored select and build the stream.- Overrides:
remoteExecute
in classorg.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(java.lang.Object container)
INTERNAL: Return the size of container.- Specified by:
sizeFor
in interfaceorg.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>
- Overrides:
sizeFor
in classorg.eclipse.persistence.internal.queries.ContainerPolicy
-
toStringInfo
protected java.lang.Object toStringInfo()
- Overrides:
toStringInfo
in classorg.eclipse.persistence.internal.queries.ContainerPolicy
-
-