Class CompositeItemReader<T>
java.lang.Object
org.springframework.batch.infrastructure.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
ItemStreamReaders. This
implementation is not thread-safe.- Since:
- 5.2
- Author:
- Mahmoud Ben Hassine, Elimelec Burghelea
-
Constructor Summary
ConstructorsConstructorDescriptionCompositeItemReader(List<ItemStreamReader<? extends T>> delegates) Create a newCompositeItemReader. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Close all delegates.voidopen(ExecutionContext executionContext) Open the stream for the providedExecutionContext.@Nullable Tread()Reads a piece of input data and advance to the next one.voidupdate(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:ItemStreamOpen the stream for the providedExecutionContext.- Specified by:
openin 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:ItemReaderReads 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.- Specified by:
readin interfaceItemReader<T>- Returns:
- T the item to be processed or
nullif the data source is exhausted - Throws:
Exception- if an error occurs.
-
update
Description copied from interface:ItemStreamIndicates 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:
updatein interfaceItemStream- Parameters:
executionContext- to be updated- Throws:
ItemStreamException
-
close
Close all delegates.- Specified by:
closein interfaceItemStream- Throws:
ItemStreamException- thrown if one of the delegates fails to close. Original exceptions thrown by delegates are added as suppressed exceptions into this one, in the same order as delegates were registered.
-