org.springframework.batch.item.database
Class AbstractPagingItemReader<T>

java.lang.Object
  extended by org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<T>
      extended by org.springframework.batch.item.database.AbstractPagingItemReader<T>
All Implemented Interfaces:
ItemReader<T>, ItemStream, ItemStreamReader<T>, InitializingBean
Direct Known Subclasses:
HibernatePagingItemReader, IbatisPagingItemReader, JdbcPagingItemReader, JpaPagingItemReader

public abstract class AbstractPagingItemReader<T>
extends AbstractItemCountingItemStreamItemReader<T>
implements InitializingBean

Abstract ItemReader for to extend when reading database records in a paging fashion.

Implementations should execute queries using paged requests of a size specified in setPageSize(int). Additional pages are requested when needed as AbstractItemCountingItemStreamItemReader.read() method is called, returning an object corresponding to current position.

Since:
2.0
Author:
Thomas Risberg, Dave Syer

Field Summary
protected  Log logger
           
protected  List<T> results
           
 
Constructor Summary
AbstractPagingItemReader()
           
 
Method Summary
 void afterPropertiesSet()
          Check mandatory properties.
protected  void doClose()
          Close the resources opened in AbstractItemCountingItemStreamItemReader.doOpen().
protected abstract  void doJumpToPage(int itemIndex)
           
protected  void doOpen()
          Open resources necessary to start reading input.
protected  T doRead()
          Read next item from input.
protected abstract  void doReadPage()
           
 int getPage()
          The current page number.
 int getPageSize()
          The page size configured for this reader.
protected  void jumpToItem(int itemIndex)
          Move to the given item index.
 void setPageSize(int pageSize)
          The number of rows to retrieve at a time.
 
Methods inherited from class org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader
close, getCurrentItemCount, getExecutionContextUserSupport, isSaveState, open, read, setCurrentItemCount, setMaxItemCount, setName, setSaveState, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected Log logger

results

protected volatile List<T> results
Constructor Detail

AbstractPagingItemReader

public AbstractPagingItemReader()
Method Detail

getPage

public int getPage()
The current page number.

Returns:
the current page

getPageSize

public int getPageSize()
The page size configured for this reader.

Returns:
the page size

setPageSize

public void setPageSize(int pageSize)
The number of rows to retrieve at a time.

Parameters:
pageSize - the number of rows to fetch per page

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Check mandatory properties.

Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception
See Also:
InitializingBean.afterPropertiesSet()

doRead

protected T doRead()
            throws Exception
Description copied from class: AbstractItemCountingItemStreamItemReader
Read next item from input.

Specified by:
doRead in class AbstractItemCountingItemStreamItemReader<T>
Returns:
item
Throws:
Exception

doReadPage

protected abstract void doReadPage()

doOpen

protected void doOpen()
               throws Exception
Description copied from class: AbstractItemCountingItemStreamItemReader
Open resources necessary to start reading input.

Specified by:
doOpen in class AbstractItemCountingItemStreamItemReader<T>
Throws:
Exception

doClose

protected void doClose()
                throws Exception
Description copied from class: AbstractItemCountingItemStreamItemReader
Close the resources opened in AbstractItemCountingItemStreamItemReader.doOpen().

Specified by:
doClose in class AbstractItemCountingItemStreamItemReader<T>
Throws:
Exception

jumpToItem

protected void jumpToItem(int itemIndex)
                   throws Exception
Description copied from class: AbstractItemCountingItemStreamItemReader
Move to the given item index. Subclasses should override this method if there is a more efficient way of moving to given index than re-reading the input using AbstractItemCountingItemStreamItemReader.doRead().

Overrides:
jumpToItem in class AbstractItemCountingItemStreamItemReader<T>
Throws:
Exception

doJumpToPage

protected abstract void doJumpToPage(int itemIndex)


Copyright © 2013 SpringSource. All Rights Reserved.