Class CursorPolicy

java.lang.Object
org.eclipse.persistence.internal.queries.ContainerPolicy
org.eclipse.persistence.queries.CursorPolicy
All Implemented Interfaces:
Serializable, 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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
     
    protected ReadQuery
     

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

    constructor, defaultContainerClass, elementDescriptor
  • Constructor Summary

    Constructors
    Constructor
    Description
    INTERNAL: default constructor
    CursorPolicy(ReadQuery query, int pageSize)
    INTERNAL:
  • Method Summary

    Modifier and Type
    Method
    Description
    org.eclipse.persistence.internal.queries.ContainerPolicy
    INTERNAL:
    createChangeEvent(Object collectionOwner, String propertyName, Object collectionChanged, Object elementChanged, int changeType, Integer index, boolean isChangeApplied)
    INTERNAL: Creates a CollectionChangeEvent for the container
    abstract Object
    INTERNAL: Execute the cursored select and build the stream.
    int
    Return the number of elements to be read into a cursored stream when more elements are needed from the database.
    INTERNAL: Return the query.
    boolean
    hasNext(Object iterator)
    INTERNAL: Return whether the iterator has more objects.
    boolean
     
    iteratorFor(Object container)
    INTERNAL: Return an iterator for the given container.
    protected Object
    next(Object iterator)
    INTERNAL: Return the next object on the queue.
    boolean
    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
    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
    INTERNAL: Set the query.
    int
    sizeFor(Object container)
    INTERNAL: Return the size of container.
    protected Object
     

    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

    Methods inherited from class java.lang.Object

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

    • pageSize

      protected int pageSize
    • query

      protected ReadQuery query
  • Constructor Details

    • CursorPolicy

      public CursorPolicy()
      INTERNAL: default constructor
    • CursorPolicy

      public CursorPolicy(ReadQuery query, int pageSize)
      INTERNAL:
  • Method Details

    • 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, boolean isChangeApplied)
      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 interface org.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>
      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 interface org.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>
      Specified by:
      iteratorFor in class org.eclipse.persistence.internal.queries.ContainerPolicy
      See Also:
      • ContainerPolicy.hasNext(java.lang.Object)
      • ContainerPolicy.next(java.lang.Object)
    • next

      protected Object next(Object iterator)
      INTERNAL: Return the next object on the queue. The iterator is the one returned from #iteratorFor().
      Specified by:
      next in class org.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 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.
      Specified by:
      sizeFor in interface org.eclipse.persistence.internal.core.queries.CoreContainerPolicy<org.eclipse.persistence.internal.sessions.AbstractSession>
      Overrides:
      sizeFor in class org.eclipse.persistence.internal.queries.ContainerPolicy
    • toStringInfo

      protected Object toStringInfo()
      Overrides:
      toStringInfo in class org.eclipse.persistence.internal.queries.ContainerPolicy