com.ibm.pdq.runtime.data.handlers

Class IteratorPagingResultHandler<T>

  1. java.lang.Object
  2. extended bycom.ibm.pdq.runtime.data.handlers.IteratorResultHandler<T>
  3. extended bycom.ibm.pdq.runtime.data.handlers.IteratorPagingResultHandler<T>
All implemented interfaces:
ResultHandler<ResultIterator<T>>

public class IteratorPagingResultHandler<T>
extends IteratorResultHandler<T>
An implementation of ResultHandler that can be specified to cause pureQuery to return content of a specified page of the results of an SQL query as an instance of ResultIterator. The rows are returned by the ResultIterator<T> in the same order in which they are returned from the data source. See ResultHandler for a description of how an implementation of ResultHandler can be specified to a pureQuery method.

The constructors of IteratorPagingResultHandler<T> require the user to specify which page of the SQL query results to return and the format in which to return each row of the results. One way to specify the format is by providing a class. If a class is provided, pureQuery creates an instance of that class to contain each row of the results. The format also can be specified by providing an instance of an implementation of RowHandler to use to process each row of the results. <T> is the generic type of the RowHandler or the Class that is specified to a constructor, and it is the generic type of the returned ResultIterator<T>.

An instance of IteratorPagingResultHandler<T> maintains no state information other than which page to process and the format in which the ResultIterator<T> returns each row. Therefore, a single instance of IteratorPagingResultHandler<T> can be used for more than one pureQuery method.


Constructor Summary

Constructor and Description
IteratorPagingResultHandler(Class<T> beanClass,int absoluteStartingRow,int absoluteEndingRow)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIteratorthat returns content of the rows of the specified page of the SQL query results as instances of the class beanClass.
IteratorPagingResultHandler(int pageNumber,int pageSize,Class<T> beanClass)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIteratorthat returns content of the rows of the specified page of the SQL query results as instances of the class beanClass.
IteratorPagingResultHandler(int pageNumber,int pageSize,RowHandler<T> singleRowHandler)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIteratorthat uses singleRowHandler to process and to return each row of the specified page of the SQL query results.
IteratorPagingResultHandler(RowHandler<T> singleRowHandler,int absoluteStartingRow,int absoluteEndingRow)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIteratorthat uses the singleRowHandler to process and to return each row of the specified page of the SQL query results.

Method Summary

Modifier and Type Method and Description
  1. ResultIterator<T>
handle(ResultSet resultSet)
Returns an instance of ResultIteratorthat can be used to return each row of the specified page of resultSet in the specified format.
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

IteratorPagingResultHandler

public IteratorPagingResultHandler(
Class<T> beanClass,
                    int absoluteStartingRow,
                    int absoluteEndingRow)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIterator that returns content of the rows of the specified page of the SQL query results as instances of the class beanClass.

This constructor allows the page that is to be processed to be specified by indicating the range of rows on the page. absoluteStartingRow is the number of the first row to process, and absoluteEndingRow is the number of the last row to process. The first row of the SQL query results is row number 1. The values of absoluteStartingRow and absoluteEndingRow must both be at least 1, and absoluteStartingRow must be less than or equal to absoluteEndingRow, or a RuntimeException is thrown.

Parameters:
beanClass - the Class in which to return content of each row on the page of the SQL query results
absoluteStartingRow - the row number of the first row to process on the page of the SQL query results. absoluteStartingRow must be greater than or equal to 1, and absoluteStartingRow must be less than or equal to absoluteEndingRow.
absoluteEndingRow - the row number of the last row to process on the page of the SQL query results. absoluteEndingRow must be greater than or equal to 1, and absoluteEndingRow must be greater than or equal to absoluteStartingRow.

IteratorPagingResultHandler

public IteratorPagingResultHandler(
int pageNumber,
                    int pageSize,
                    Class<T> beanClass)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIterator that returns content of the rows of the specified page of the SQL query results as instances of the class beanClass.

This constructor allows the page that is to be processed to be specified by indicating the page number and the page size. The page number for the first page of the results is 1. The page size is the number of rows on the page. The page size must be at least 1. A RuntimeException is thrown if pageNumber and pageSize are not both 1 or greater.

Parameters:
pageNumber - the number that indicates the page of the SQL query results to process. pageNumber must be greater than or equal to 1.
pageSize - the number of rows on one page of the SQL query results. pageSize must be greater than or equal to 1.
beanClass - the Class in which to return content of each row on the page of the SQL query results

IteratorPagingResultHandler

public IteratorPagingResultHandler(
int pageNumber,
                    int pageSize,
                    RowHandler<T> singleRowHandler)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIterator that uses singleRowHandler to process and to return each row of the specified page of the SQL query results.

This constructor allows the page that is to be processed to be specified by indicating the page number and the page size. The page number for the first page of the results is 1. The page size is the number of rows on the page. The page size must be at least 1. A RuntimeException is thrown if pageNumber and pageSize are not both 1 or greater.

Parameters:
pageNumber - the number that indicates the page of the SQL query results to process. pageNumber must be greater than or equal to 1.
pageSize - the number of rows on one page of the SQL query results. pageSize must be greater than or equal to 1.
singleRowHandler - the instance of an implementation of a RowHandler that is used to process each row on a page of the SQL query results

IteratorPagingResultHandler

public IteratorPagingResultHandler(
RowHandler<T> singleRowHandler,
                    int absoluteStartingRow,
                    int absoluteEndingRow)
Constructs an instance of IteratorPagingResultHandler<T> that can be provided to a pureQuery method so that the method returns an instance of ResultIterator that uses the singleRowHandler to process and to return each row of the specified page of the SQL query results.

This constructor allows the page that is to be processed to be specified by indicating the range of rows on the page. absoluteStartingRow is the number of the first row to process, and absoluteEndingRow is the number of the last row to process. The first row of the SQL query results is row number 1. The values of absoluteStartingRow and absoluteEndingRow must both be at least 1, and absoluteStartingRow must be less than or equal to absoluteEndingRow, or a RuntimeException is thrown.

Parameters:
singleRowHandler - the instance of an implementation of RowHandler that is used to process each row on the page of the SQL query results
absoluteStartingRow - the row number of the first row to process on the page of the SQL query results. absoluteStartingRow must be greater than or equal to 1, and absoluteStartingRow must be less than or equal to absoluteEndingRow.
absoluteEndingRow - the row number of the last row to process on the page of the SQL query results. absoluteEndingRow must be greater than or equal to 1, and absoluteEndingRow must be greater than or equal to absoluteStartingRow.

Method Detail

handle

public ResultIterator<T> handle(
ResultSet resultSet)
Returns an instance of ResultIterator that can be used to return each row of the specified page of resultSet in the specified format. The page to return and the format to use for each row are specified when the constructor is called. When an IteratorPagingResultHandler<T> is specified for a pureQuery inline method, pureQuery calls handle(ResultSet) to create the instance of ResultIterator<T> that is returned from the inline method.

<T> is the generic type of the RowHandler or the Class that is specified to a constructor, and it is the generic type of the returned ResultIterator<T>.

Specified by:
Overrides:
Parameters:
resultSet - a ResultSet that represents the results from an SQL statement
Returns:
an instance of ResultIterator that can be used to return each row of the specified page of resultSet in the specified format. The page to return and the format to use for each row are specified when the constructor is called. <T> is the generic type of the RowHandler or the Class that is specified to a constructor, and it is the generic type of the returned ResultIterator<T>.