Package 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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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.