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
    • 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.
      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.
      • 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, updateChangeRecordForSelfMerge, 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​(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
        See Also:
        ContainerPolicy.iteratorFor(java.lang.Object)
      • 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)
      • 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