Class CompositeItemWriter<T>

java.lang.Object
org.springframework.batch.item.support.CompositeItemWriter<T>
All Implemented Interfaces:
ItemStream, ItemStreamWriter<T>, ItemWriter<T>, org.springframework.beans.factory.InitializingBean

public class CompositeItemWriter<T> extends Object implements ItemStreamWriter<T>, org.springframework.beans.factory.InitializingBean
Calls a collection of ItemWriters in fixed-order sequence.

The implementation is thread-safe if all delegates are thread-safe.
Author:
Robert Kasanicky, Dave Syer, Mahmoud Ben Hassine
  • Constructor Details

    • CompositeItemWriter

      public CompositeItemWriter()
      Default constructor
    • CompositeItemWriter

      public CompositeItemWriter(List<ItemWriter<? super T>> delegates)
      Convenience constructor for setting the delegates.
      Parameters:
      delegates - the list of delegates to use.
    • CompositeItemWriter

      @SafeVarargs public CompositeItemWriter(ItemWriter<? super T>... delegates)
      Convenience constructor for setting the delegates.
      Parameters:
      delegates - the array of delegates to use.
  • Method Details

    • setIgnoreItemStream

      public void setIgnoreItemStream(boolean ignoreItemStream)
      Establishes the policy whether to call the open, close, or update methods for the item writer delegates associated with the CompositeItemWriter.
      Parameters:
      ignoreItemStream - if false the delegates' open, close, or update methods will be called when the corresponding methods on the CompositeItemWriter are called. If true the delegates' open, close, nor update methods will not be called (default is false).
    • write

      public void write(Chunk<? extends T> chunk) throws Exception
      Description copied from interface: ItemWriter
      Process the supplied data element. Will not be called with any null items in normal operation.
      Specified by:
      write in interface ItemWriter<T>
      Parameters:
      chunk - of items to be written. Must not be null.
      Throws:
      Exception - if there are errors. The framework will catch the exception and convert or rethrow it as appropriate.
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
    • setDelegates

      public void setDelegates(List<ItemWriter<? super T>> delegates)
      The list of item writers to use as delegates. Items are written to each of the delegates.
      Parameters:
      delegates - the list of delegates to use. The delegates list must not be null nor be empty.
    • close

      public void close() throws ItemStreamException
      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 interface ItemStream
      Throws:
      ItemStreamException
    • open

      public void open(ExecutionContext executionContext) throws ItemStreamException
      Description copied from interface: ItemStream
      Open the stream for the provided ExecutionContext.
      Specified by:
      open in interface ItemStream
      Parameters:
      executionContext - current step's ExecutionContext. Will be the executionContext from the last run of the step on a restart.
      Throws:
      ItemStreamException
    • update

      public void update(ExecutionContext executionContext) throws ItemStreamException
      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 interface ItemStream
      Parameters:
      executionContext - to be updated
      Throws:
      ItemStreamException