Class 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int pageSize  
      protected ReadQuery query  
      • Fields inherited from class org.eclipse.persistence.internal.queries.ContainerPolicy

        constructor, defaultContainerClass, elementDescriptor
    • 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 container
      abstract 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
      • Methods inherited from class java.lang.Object

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

      • pageSize

        protected int pageSize
    • 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​(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 class org.eclipse.persistence.internal.queries.ContainerPolicy
      • execute

        public abstract java.lang.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​(java.lang.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
      • isCursorPolicy

        public boolean isCursorPolicy()
        Overrides:
        isCursorPolicy in class org.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 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 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 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 java.lang.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​(java.lang.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 java.lang.Object toStringInfo()
        Overrides:
        toStringInfo in class org.eclipse.persistence.internal.queries.ContainerPolicy