org.datanucleus.store.rdbms.query
Class ScrollableQueryResult

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList
          extended by org.datanucleus.store.query.AbstractQueryResult
              extended by org.datanucleus.store.rdbms.query.AbstractRDBMSQueryResult
                  extended by org.datanucleus.store.rdbms.query.ScrollableQueryResult
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable, java.util.Collection, java.util.List, org.datanucleus.store.query.QueryResult

public final class ScrollableQueryResult
extends AbstractRDBMSQueryResult

Lazy collection results from a Query with the ResultSet scrollable. Supports the following query extensions (in addition to those supported by superclasses) :-

If there is no transaction present, or if the FetchPlan is in "greedy" mode, and where caching is being used will load all results at startup. Otherwise results are only loaded when accessed.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.datanucleus.store.rdbms.query.AbstractRDBMSQueryResult
rof, rs
 
Fields inherited from class org.datanucleus.store.query.AbstractQueryResult
closed, connectionListeners, loadResultsAtCommit, LOCALISER, query, resultSizeMethod, size
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
ScrollableQueryResult(org.datanucleus.store.query.Query query, org.datanucleus.store.query.ResultObjectFactory rof, java.sql.ResultSet rs, java.util.Collection candidates)
          Constructor of the result from a Query.
 
Method Summary
 void close()
          Method to close the results, making the results unusable thereafter.
protected  void closingConnection()
          Inform the query result that the connection is being closed so perform any operations now, or rest in peace.
 boolean equals(java.lang.Object o)
          Equality operator for QueryResults.
 java.lang.Object get(int index)
          Method to retrieve a particular element from the list.
protected  java.lang.Object getObjectForIndex(int index)
          Accessor for the result object at an index.
protected  int getSizeUsingMethod()
          Method to get the size using the "resultSizeMethod".
 java.util.Iterator iterator()
          Accessor for an iterator for the results.
 java.util.ListIterator listIterator()
          Accessor for an iterator for the results.
 java.lang.Object[] toArray()
           
 java.lang.Object[] toArray(java.lang.Object[] a)
           
 
Methods inherited from class org.datanucleus.store.rdbms.query.AbstractRDBMSQueryResult
closeResults, disconnect, getSizeUsingCount, hashCode
 
Methods inherited from class org.datanucleus.store.query.AbstractQueryResult
add, add, addAll, addConnectionListener, assertIsOpen, clear, contains, containsAll, indexOf, isEmpty, isOpen, lastIndexOf, remove, set, size, subList
 
Methods inherited from class java.util.AbstractList
listIterator, removeRange
 
Methods inherited from class java.util.AbstractCollection
addAll, remove, removeAll, retainAll, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
addAll, remove, removeAll, retainAll
 
Methods inherited from interface java.util.List
addAll, remove, removeAll, retainAll
 

Constructor Detail

ScrollableQueryResult

public ScrollableQueryResult(org.datanucleus.store.query.Query query,
                             org.datanucleus.store.query.ResultObjectFactory rof,
                             java.sql.ResultSet rs,
                             java.util.Collection candidates)
Constructor of the result from a Query.

Parameters:
query - The Query
rof - The factory to retrieve results from
rs - The ResultSet from the Query Statement
candidates - the Candidates collection. Pass this argument only when distinct = false
Method Detail

getObjectForIndex

protected java.lang.Object getObjectForIndex(int index)
Accessor for the result object at an index. If the object has already been processed will return that object, otherwise will retrieve the object using the factory.

Parameters:
index - The list index position
Returns:
The result object

close

public void close()
Method to close the results, making the results unusable thereafter.

Specified by:
close in interface org.datanucleus.store.query.QueryResult
Overrides:
close in class AbstractRDBMSQueryResult

closingConnection

protected void closingConnection()
Inform the query result that the connection is being closed so perform any operations now, or rest in peace.

Specified by:
closingConnection in class org.datanucleus.store.query.AbstractQueryResult

iterator

public java.util.Iterator iterator()
Accessor for an iterator for the results.

Specified by:
iterator in interface java.lang.Iterable
Specified by:
iterator in interface java.util.Collection
Specified by:
iterator in interface java.util.List
Specified by:
iterator in class org.datanucleus.store.query.AbstractQueryResult
Returns:
The iterator

listIterator

public java.util.ListIterator listIterator()
Accessor for an iterator for the results.

Specified by:
listIterator in interface java.util.List
Specified by:
listIterator in class org.datanucleus.store.query.AbstractQueryResult
Returns:
The iterator

equals

public boolean equals(java.lang.Object o)
Equality operator for QueryResults. Overrides the AbstractList implementation since that uses size() and iterator() and that would cause problems when closed.

Specified by:
equals in interface java.util.Collection
Specified by:
equals in interface java.util.List
Specified by:
equals in class org.datanucleus.store.query.AbstractQueryResult
Parameters:
o - The object to compare against
Returns:
Whether they are equal

get

public java.lang.Object get(int index)
Method to retrieve a particular element from the list.

Specified by:
get in interface java.util.List
Specified by:
get in class org.datanucleus.store.query.AbstractQueryResult
Parameters:
index - The index of the element
Returns:
The element at index

getSizeUsingMethod

protected int getSizeUsingMethod()
Method to get the size using the "resultSizeMethod". This implementation supports "LAST" method. Override this in subclasses to implement other methods.

Overrides:
getSizeUsingMethod in class org.datanucleus.store.query.AbstractQueryResult
Returns:
The size

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface java.util.Collection
Specified by:
toArray in interface java.util.List
Overrides:
toArray in class org.datanucleus.store.query.AbstractQueryResult

toArray

public java.lang.Object[] toArray(java.lang.Object[] a)
Specified by:
toArray in interface java.util.Collection
Specified by:
toArray in interface java.util.List
Overrides:
toArray in class org.datanucleus.store.query.AbstractQueryResult


Copyright © 2009. All Rights Reserved.