Package org.springframework.batch.item
Interface ItemReader<T>
- All Known Subinterfaces:
ItemStreamReader<T>,PeekableItemReader<T>,ResourceAwareItemReaderItemStream<T>
- All Known Implementing Classes:
AbstractCursorItemReader,AbstractItemCountingItemStreamItemReader,AbstractItemStreamItemReader,AbstractNeo4jItemReader,AbstractPaginatedDataItemReader,AbstractPagingItemReader,AggregateItemReader,AmqpItemReader,ExceptionThrowingItemReaderProxy,FlatFileItemReader,GeneratingTradeItemReader,HibernateCursorItemReader,HibernatePagingItemReader,InfiniteLoopReader,ItemReaderAdapter,ItemReaderAdapter,IteratorItemReader,JdbcCursorItemReader,JdbcPagingItemReader,JmsItemReader,JpaPagingItemReader,JsonItemReader,LdifReader,ListItemReader,MappingLdifReader,MongoItemReader,MultiResourceItemReader,Neo4jItemReader,OrderItemReader,RepositoryItemReader,ResourcesItemReader,SingleItemPeekableItemReader,StagingItemReader,StaxEventItemReader,StoredProcedureItemReader,SynchronizedItemStreamReader
public interface ItemReader<T>Strategy interface for providing the data.
Implementations are expected to be stateful and will be called multiple times for each batch, with each call toread()returning a different value and finally returningnullwhen all input data is exhausted.
Implementations need not be thread-safe and clients of aItemReaderneed to be aware that this is the case.
A richer interface (e.g. with a look ahead or peek) is not feasible because we need to support transactions in an asynchronous batch.- Since:
- 1.0
- Author:
- Rob Harrop, Dave Syer, Lucas Ward, Mahmoud Ben Hassine
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Tread()Reads a piece of input data and advance to the next one.
Method Detail
read
@Nullable T read() throws java.lang.Exception, UnexpectedInputException, ParseException, NonTransientResourceException
Reads a piece of input data and advance to the next one. Implementations must returnnullat the end of the input data set. In a transactional setting, caller might get the same item twice from successive calls (or otherwise), if the first call was in a transaction that rolled back.- Returns:
- T the item to be processed or
nullif the data source is exhausted - Throws:
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.java.lang.Exception- if an there is a non-specific error.