org.apache.cayenne
Interface QueryResponse

All Known Implementing Classes:
GenericResponse, IncrementalListResponse, ListResponse

public interface QueryResponse

Represents a result of query execution. It potentially contain a mix of update counts and lists of selected values. Provides API somewhat similar to java.util.Iterator or java.sql.ResultSet for scanning through the individual results.

An example of iterating through a response:

 QueryResponse response = context.performGenericQuery(query);
 for (response.reset(); response.next();) {
     if (response.isList()) {
         List list = response.currentList();
         // ...
     }
     else {
         int[] updateCounts = response.currentUpdateCount();
         // ...
     }
 }
 

In case the structure of the result is known, and only a single list or an update count is expected, there is a simpler API to access them:

 QueryResponse response = context.performGenericQuery(query);
 List list = response.firstList();
 int[] count = response.firstUpdateCount();
 

Since:
1.2

Method Summary
 List<?> currentList()
          Returns a List under the current iterator position.
 int[] currentUpdateCount()
          Returns an update count under the current iterator position.
 List firstList()
          A utility method for quickly retrieving the first list in the response.
 int[] firstUpdateCount()
          A utility method for quickly retrieving the first update count from the response.
 boolean isList()
          Returns whether current iteration result is a list or an update count.
 boolean next()
          Rewinds response iterator to the next result, returning true if it is available.
 void reset()
          Restarts response iterator.
 int size()
          Returns a number of results in the response.
 

Method Detail

size

int size()
Returns a number of results in the response.


isList

boolean isList()
Returns whether current iteration result is a list or an update count.


currentList

List<?> currentList()
Returns a List under the current iterator position. Use isList() to check the result type before calling this method.


currentUpdateCount

int[] currentUpdateCount()
Returns an update count under the current iterator position. Returned value is an int[] to accommodate batch queries. For a regular update result, the value will be an int[1]. Use isList() to check the result type before calling this method.


next

boolean next()
Rewinds response iterator to the next result, returning true if it is available.


reset

void reset()
Restarts response iterator.


firstList

List firstList()
A utility method for quickly retrieving the first list in the response. Returns null if the query has no lists. Note that this method resets current iterator to an undefined state.


firstUpdateCount

int[] firstUpdateCount()
A utility method for quickly retrieving the first update count from the response. Note that this method resets current iterator to an undefined state.



Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.