Class CursoredStreamPolicy

java.lang.Object
org.eclipse.persistence.internal.queries.ContainerPolicy
org.eclipse.persistence.queries.CursorPolicy
org.eclipse.persistence.queries.CursoredStreamPolicy
All Implemented Interfaces:
Serializable, Cloneable, org.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>

public class CursoredStreamPolicy extends CursorPolicy

Purpose: Used to support cursored streams in a read query.

Responsibilities: Execute the cursored read and build the stream.

See Also:
Author:
James Sutherland
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
     
    protected ValueReadQuery
     

    Fields inherited from class org.eclipse.persistence.queries.CursorPolicy

    pageSize, query

    Fields inherited from class org.eclipse.persistence.internal.queries.ContainerPolicy

    constructor, defaultContainerClass, elementDescriptor
  • Constructor Summary

    Constructors
    Constructor
    Description
    default constructor
    CursoredStreamPolicy(ReadQuery query, int pageSize)
    set the initial read size to match the page size
    CursoredStreamPolicy(ReadQuery query, int initialReadSize, int pageSize)
     
    CursoredStreamPolicy(ReadQuery query, int initialReadSize, int pageSize, ValueReadQuery sizeQuery)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    INTERNAL: Execute the cursored select and build the stream.
    int
    Specifies the number of elements to be read initially into a cursored stream.
    Return the query used to read the size.
    boolean
    INTERNAL: Return if a custom size query is defined.
    boolean
     
    void
    prepare(DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractSession session)
    INTERNAL: Prepare and validate.
    INTERNAL: Execute the cursored select and build the stream.
    void
    setInitialReadSize(int initialReadSize)
    Specifies the number of elements to be read initially into a cursored stream
    void
    Set the query used to read the size.

    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, 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

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • initialReadSize

      protected int initialReadSize
    • sizeQuery

      protected ValueReadQuery sizeQuery
  • Constructor Details

    • CursoredStreamPolicy

      public CursoredStreamPolicy()
      default constructor
    • CursoredStreamPolicy

      public CursoredStreamPolicy(ReadQuery query, int pageSize)
      set the initial read size to match the page size
    • CursoredStreamPolicy

      public CursoredStreamPolicy(ReadQuery query, int initialReadSize, int pageSize)
    • CursoredStreamPolicy

      public CursoredStreamPolicy(ReadQuery query, int initialReadSize, int pageSize, ValueReadQuery sizeQuery)
  • Method Details

    • execute

      public Object execute()
      INTERNAL: Execute the cursored select and build the stream.
      Specified by:
      execute in class CursorPolicy
    • getInitialReadSize

      public int getInitialReadSize()
      Specifies the number of elements to be read initially into a cursored stream.
    • getSizeQuery

      public ValueReadQuery getSizeQuery()
      Return the query used to read the size. This is required for SQL read queries.
    • hasSizeQuery

      public boolean hasSizeQuery()
      INTERNAL: Return if a custom size query is defined.
    • isCursoredStreamPolicy

      public boolean isCursoredStreamPolicy()
      Overrides:
      isCursoredStreamPolicy 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 CursorPolicy
      Throws:
      QueryException
    • remoteExecute

      public Object remoteExecute()
      INTERNAL: Execute the cursored select and build the stream.
      Specified by:
      remoteExecute in class CursorPolicy
    • setInitialReadSize

      public void setInitialReadSize(int initialReadSize)
      Specifies the number of elements to be read initially into a cursored stream
    • setSizeQuery

      public void setSizeQuery(ValueReadQuery sizeQuery)
      Set the query used to read the size. This is required for SQL read queries.