public class AggregateItemReader<T> extends Object implements ItemReader<List<T>>
ItemReader
that delivers a list as its item, storing up objects
from the injected ItemReader
until they are ready to be packed out as
a collection. This class must be used as a wrapper for a custom
ItemReader
that can identify the record boundaries. The custom reader
should mark the beginning and end of records by returning an
AggregateItem
which responds true to its query methods
is*()
.ItemReader
is also thread safe.AggregateItem.isHeader()
,
AggregateItem.isFooter()
Constructor and Description |
---|
AggregateItemReader() |
Modifier and Type | Method and Description |
---|---|
List<T> |
read()
Get the next list of records.
|
void |
setItemReader(ItemReader<AggregateItem<T>> itemReader) |
public List<T> read() throws Exception
read
in interface ItemReader<List<T>>
Exception
ParseException
- if there is a problem parsing the current record
(but the next one may still be valid)NonTransientResourceException
- if there is a fatal exception in
the underlying resource. After throwing this exception implementations
should endeavour to return null from subsequent calls to read.UnexpectedInputException
- if there is an uncategorised problem
with the input data. Assume potentially transient, so subsequent calls to
read might succeed.ItemReader.read()
public void setItemReader(ItemReader<AggregateItem<T>> itemReader)
Copyright © 2014 Pivotal. All rights reserved.