Class CompositeItemReader<T>
java.lang.Object
org.springframework.batch.item.support.CompositeItemReader<T>
- Type Parameters:
T
- type of objects to read
- All Implemented Interfaces:
ItemReader<T>
,ItemStream
,ItemStreamReader<T>
Composite reader that delegates reading to a list of
ItemStreamReader
s. This
implementation is not thread-safe.- Since:
- 5.2
- Author:
- Mahmoud Ben Hassine
-
Constructor Summary
ConstructorDescriptionCompositeItemReader
(List<ItemStreamReader<? extends T>> delegates) Create a newCompositeItemReader
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
If any resources are needed for the stream to operate they need to be destroyed here.void
open
(ExecutionContext executionContext) Open the stream for the providedExecutionContext
.read()
Reads a piece of input data and advance to the next one.void
update
(ExecutionContext executionContext) Indicates that the execution context provided during open is about to be saved.
-
Constructor Details
-
CompositeItemReader
Create a newCompositeItemReader
.- Parameters:
delegates
- the delegate readers to read data
-
-
Method Details
-
open
Description copied from interface:ItemStream
Open the stream for the providedExecutionContext
.- Specified by:
open
in interfaceItemStream
- Parameters:
executionContext
- current step'sExecutionContext
. Will be the executionContext from the last run of the step on a restart.- Throws:
ItemStreamException
-
read
Description copied from interface:ItemReader
Reads a piece of input data and advance to the next one. Implementations must returnnull
at 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.- Specified by:
read
in interfaceItemReader<T>
- Returns:
- T the item to be processed or
null
if 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.Exception
- if an there is a non-specific error.
-
update
Description copied from interface:ItemStream
Indicates that the execution context provided during open is about to be saved. If any state is remaining, but has not been put in the context, it should be added here.- Specified by:
update
in interfaceItemStream
- Parameters:
executionContext
- to be updated- Throws:
ItemStreamException
-
close
Description copied from interface:ItemStream
If any resources are needed for the stream to operate they need to be destroyed here. Once this method has been called all other methods (except open) may throw an exception.- Specified by:
close
in interfaceItemStream
- Throws:
ItemStreamException
-