Package org.eclipse.persistence.queries
Class ScrollableCursor
- java.lang.Object
-
- org.eclipse.persistence.queries.Cursor
-
- org.eclipse.persistence.queries.ScrollableCursor
-
- All Implemented Interfaces:
java.io.Serializable
,java.util.Enumeration
,java.util.Iterator
,java.util.ListIterator
public class ScrollableCursor extends Cursor implements java.util.ListIterator
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
atEndOfCursor
Internal flag indicating if the end of the cursor has been reachedprotected java.lang.Object
nextObject
protected java.lang.Object
previousObject
protected org.eclipse.persistence.internal.sessions.AbstractRecord
previousRow
Store the previous row, for 1-m joining.-
Fields inherited from class org.eclipse.persistence.queries.Cursor
executionSession, fields, initiallyConformingIndex, nextRow, objectCollection, policy, position, query, resultSet, selectionCriteriaClone, session, size, statement, translationRow
-
-
Constructor Summary
Constructors Constructor Description ScrollableCursor()
INTERNAL: Default constructor.ScrollableCursor(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call, ScrollableCursorPolicy policy)
INTERNAL: constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
absolute(int rows)
PUBLIC: Moves the cursor to the given row number in the result setvoid
add(java.lang.Object object)
PUBLIC: Add is not support for scrollable cursors.void
afterLast()
PUBLIC: Moves the cursor to the end of the result set, just after the last row.void
beforeFirst()
PUBLIC: Moves the cursor to the front of the result set, just before the first rowprotected void
clearNextAndPrevious()
INTERNAL: Clear the cached next and previous object and row values.protected void
clearNextAndPreviousObject()
INTERNAL: Clear only the cached next and previous object values.int
currentIndex()
PUBLIC: Retrieves the current row index numberboolean
first()
PUBLIC: Moves the cursor to the first row in the result setprotected int
getCursorSize()
INTERNAL: Retrieve the size of the open cursor by executing a count on the same query as the cursor.protected int
getKnownCursorSize()
protected java.lang.Object
getNextObject()
int
getPosition()
PUBLIC: Retrieves the current cursor position (current row).protected java.lang.Object
getPreviousObject()
boolean
hasMoreElements()
PUBLIC: Indicates whether the cursor can move to the the next rowboolean
hasNext()
PUBLIC: Indicates whether the cursor can move to the the next rowboolean
hasNextElement()
PUBLIC: Indicates whether the cursor can move to the the next rowboolean
hasPrevious()
PUBLIC: Indicates whether the cursor can move to the the previous rowboolean
isAfterLast()
PUBLIC: Indicates whether the cursor is after the last row in the result set.boolean
isBeforeFirst()
PUBLIC: Indicates whether the cursor is before the first row in the result set.boolean
isFirst()
PUBLIC: Indicates whether the cursor is on the first row of the result set.boolean
isLast()
PUBLIC: Indicates whether the cursor is on the last row of the result set.boolean
last()
PUBLIC: Moves the cursor to the last row in the result setprotected void
loadNext()
Load the next objectprotected void
loadPrevious()
Load the previous object.java.lang.Object
next()
PUBLIC: This method differs slightly from conventional read() operation on a Java stream.java.util.List<java.lang.Object>
next(int number)
PUBLIC: This method differs slightly from conventional read() operation on a Java stream.java.lang.Object
nextElement()
PUBLIC: Return the next object from the collection, if beyond the read limit read from the cursor.int
nextIndex()
PUBLIC: Retrieves the next row index (against the current row)java.lang.Object
previous()
PUBLIC: Return the previous object from the collection.int
previousIndex()
PUBLIC: Retrieves the previous row index (against the current row)boolean
relative(int rows)
PUBLIC: Moves the cursor a relative number of rows, either positive or negative.protected java.lang.Object
retrieveNextObject()
INTERNAL: Read the next row from the result set.protected java.lang.Object
retrievePreviousObject()
INTERNAL: CR#4139 Read the previous row from the result set.void
set(java.lang.Object object)
PUBLIC: Set is not supported for scrollable cursors.protected void
setNextObject(java.lang.Object nextObject)
protected void
setPreviousObject(java.lang.Object previousObject)
-
Methods inherited from class org.eclipse.persistence.queries.Cursor
buildAndRegisterObject, clear, close, finalize, getAccessor, getExecutionSession, getFields, getInitiallyConformingIndex, getObjectCollection, getPageSize, getPolicy, getQuery, getResultSet, getSelectionCriteriaClone, getSession, getStatement, getTranslationRow, isClosed, remove, setExecutionSession, setFields, setInitiallyConformingIndex, setObjectCollection, setPolicy, setPosition, setResultSet, setSelectionCriteriaClone, setSession, setSize, setTranslationRow, size
-
-
-
-
Field Detail
-
nextObject
protected transient java.lang.Object nextObject
-
previousObject
protected transient java.lang.Object previousObject
-
previousRow
protected org.eclipse.persistence.internal.sessions.AbstractRecord previousRow
Store the previous row, for 1-m joining.
-
atEndOfCursor
protected boolean atEndOfCursor
Internal flag indicating if the end of the cursor has been reached
-
-
Constructor Detail
-
ScrollableCursor
public ScrollableCursor()
INTERNAL: Default constructor.
-
ScrollableCursor
public ScrollableCursor(org.eclipse.persistence.internal.databaseaccess.DatabaseCall call, ScrollableCursorPolicy policy)
INTERNAL: constructor.
-
-
Method Detail
-
absolute
public boolean absolute(int rows) throws DatabaseException
PUBLIC: Moves the cursor to the given row number in the result set- Throws:
DatabaseException
-
add
public void add(java.lang.Object object) throws QueryException
PUBLIC: Add is not support for scrollable cursors.- Specified by:
add
in interfacejava.util.ListIterator
- Throws:
QueryException
-
afterLast
public void afterLast() throws DatabaseException
PUBLIC: Moves the cursor to the end of the result set, just after the last row.- Throws:
DatabaseException
-
beforeFirst
public void beforeFirst() throws DatabaseException
PUBLIC: Moves the cursor to the front of the result set, just before the first row- Throws:
DatabaseException
-
clearNextAndPrevious
protected void clearNextAndPrevious()
INTERNAL: Clear the cached next and previous object and row values. This must be called whenever the cursor is re-positioned.
-
clearNextAndPreviousObject
protected void clearNextAndPreviousObject()
INTERNAL: Clear only the cached next and previous object values. Called by previous() and next() to maintain the cached next and previous row values.
-
currentIndex
public int currentIndex() throws DatabaseException
PUBLIC: Retrieves the current row index number- Throws:
DatabaseException
-
first
public boolean first() throws DatabaseException
PUBLIC: Moves the cursor to the first row in the result set- Throws:
DatabaseException
-
getCursorSize
protected int getCursorSize() throws DatabaseException
INTERNAL: Retrieve the size of the open cursor by executing a count on the same query as the cursor.- Specified by:
getCursorSize
in classCursor
- Throws:
DatabaseException
-
getKnownCursorSize
protected int getKnownCursorSize()
-
getNextObject
protected java.lang.Object getNextObject()
-
getPosition
public int getPosition() throws DatabaseException
PUBLIC: Retrieves the current cursor position (current row). The first row is number 1, the second number 2, and so on. Unlike java.sql.ResultSet.getRow(), 0 is not returned if afterLast. Instead size() + 1 is returned.- Specified by:
getPosition
in classCursor
- Returns:
- the current row number; 0 if there is no current row
- Throws:
DatabaseException
- if a database access error occurs
-
getPreviousObject
protected java.lang.Object getPreviousObject()
-
hasMoreElements
public boolean hasMoreElements() throws DatabaseException
PUBLIC: Indicates whether the cursor can move to the the next row- Specified by:
hasMoreElements
in interfacejava.util.Enumeration
- Throws:
DatabaseException
-
hasNext
public boolean hasNext() throws DatabaseException
PUBLIC: Indicates whether the cursor can move to the the next row- Specified by:
hasNext
in interfacejava.util.Iterator
- Specified by:
hasNext
in interfacejava.util.ListIterator
- Throws:
DatabaseException
-
hasNextElement
public boolean hasNextElement() throws DatabaseException
PUBLIC: Indicates whether the cursor can move to the the next row- Throws:
DatabaseException
-
hasPrevious
public boolean hasPrevious() throws DatabaseException
PUBLIC: Indicates whether the cursor can move to the the previous row- Specified by:
hasPrevious
in interfacejava.util.ListIterator
- Throws:
DatabaseException
-
isAfterLast
public boolean isAfterLast() throws DatabaseException
PUBLIC: Indicates whether the cursor is after the last row in the result set.- Throws:
DatabaseException
-
isBeforeFirst
public boolean isBeforeFirst() throws DatabaseException
PUBLIC: Indicates whether the cursor is before the first row in the result set.- Throws:
DatabaseException
-
isFirst
public boolean isFirst() throws DatabaseException
PUBLIC: Indicates whether the cursor is on the first row of the result set.- Throws:
DatabaseException
-
isLast
public boolean isLast() throws DatabaseException
PUBLIC: Indicates whether the cursor is on the last row of the result set.- Throws:
DatabaseException
-
last
public boolean last() throws DatabaseException
PUBLIC: Moves the cursor to the last row in the result set- Throws:
DatabaseException
-
loadNext
protected void loadNext()
Load the next object
-
loadPrevious
protected void loadPrevious()
Load the previous object. This is used solely for scrollable cursor support
-
next
public java.lang.Object next() throws DatabaseException, QueryException
PUBLIC: This method differs slightly from conventional read() operation on a Java stream. This method return the next object in the collection rather than specifying the number of bytes to be read in. Return the next object from the collection, if beyond the read limit read from the cursor- Specified by:
next
in interfacejava.util.Iterator
- Specified by:
next
in interfacejava.util.ListIterator
- Returns:
- - next object in stream
- Throws:
DatabaseException
- if read pass end of streamQueryException
-
next
public java.util.List<java.lang.Object> next(int number) throws DatabaseException
PUBLIC: This method differs slightly from conventional read() operation on a Java stream. This method returns the next number of objects in the collection in a vector. Return the next specified number of objects from the collection, if beyond the read limit read from the cursor- Parameters:
number
- - number of objects to be returned- Returns:
- - vector containing next number of objects
- Throws:
DatabaseException
- if read pass end of stream
-
nextElement
public java.lang.Object nextElement() throws DatabaseException, QueryException
PUBLIC: Return the next object from the collection, if beyond the read limit read from the cursor.- Specified by:
nextElement
in interfacejava.util.Enumeration
- Returns:
- next object in stream
- Throws:
DatabaseException
QueryException
-
nextIndex
public int nextIndex() throws DatabaseException
PUBLIC: Retrieves the next row index (against the current row)- Specified by:
nextIndex
in interfacejava.util.ListIterator
- Throws:
DatabaseException
-
previous
public java.lang.Object previous() throws DatabaseException, QueryException
PUBLIC: Return the previous object from the collection.- Specified by:
previous
in interfacejava.util.ListIterator
- Returns:
- - previous object in stream
- Throws:
DatabaseException
- if read pass first of streamQueryException
-
previousIndex
public int previousIndex() throws DatabaseException
PUBLIC: Retrieves the previous row index (against the current row)- Specified by:
previousIndex
in interfacejava.util.ListIterator
- Throws:
DatabaseException
-
relative
public boolean relative(int rows) throws DatabaseException
PUBLIC: Moves the cursor a relative number of rows, either positive or negative. Attempting to move beyond the first/last row in the result set positions the cursor before/after the the first/last row- Throws:
DatabaseException
-
retrieveNextObject
protected java.lang.Object retrieveNextObject() throws DatabaseException
INTERNAL: Read the next row from the result set.- Specified by:
retrieveNextObject
in classCursor
- Throws:
DatabaseException
-
retrievePreviousObject
protected java.lang.Object retrievePreviousObject() throws DatabaseException
INTERNAL: CR#4139 Read the previous row from the result set. It is used solely for scrollable cursor support.- Throws:
DatabaseException
-
set
public void set(java.lang.Object object) throws QueryException
PUBLIC: Set is not supported for scrollable cursors.- Specified by:
set
in interfacejava.util.ListIterator
- Throws:
QueryException
-
setNextObject
protected void setNextObject(java.lang.Object nextObject)
-
setPreviousObject
protected void setPreviousObject(java.lang.Object previousObject)
-
-