Package org.springframework.batch.item.support

# Class CompositeItemProcessor<I,O>

java.lang.Object
org.springframework.batch.item.support.CompositeItemProcessor<I,O>

All Implemented Interfaces:
  `ItemProcessor<I,O>`, `org.springframework.beans.factory.InitializingBean`

public class CompositeItemProcessor<I,O> extends Object implements ItemProcessor<I,O>, org.springframework.beans.factory.InitializingBean
Composite `ItemProcessor` that passes the item through a sequence of injected `ItemTransformer`s (return value of previous transformation is the entry value of the next).
Note the user is responsible for injecting a chain of `ItemProcessor`s that conforms to declared input and output types.

Author:
  Robert Kasanicky

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CompositeItemProcessor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `afterPropertiesSet()`
  `O`
  `process(I item)`
  Process the provided item, returning a potentially modified or new item for continued processing.
  `void`
  `setDelegates(List<? extends ItemProcessor<?,?>> delegates)`
  Establishes the `ItemProcessor` delegates that will work on the item to be processed.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CompositeItemProcessor

    public CompositeItemProcessor()

- ## Method Details

  - ### process

    @Nullable public O process(I item) throws Exception
    Description copied from interface: `ItemProcessor`
    Process the provided item, returning a potentially modified or new item for continued processing. If the returned result is `null`, it is assumed that processing of the item should not continue. A `null` item will never reach this method because the only possible sources are:
    - an `ItemReader` (which indicates no more items)
    - a previous `ItemProcessor` in a composite processor (which indicates a filtered item)
    Specified by:
      `process` in interface `ItemProcessor<I,O>`
    Parameters:
      `item` - to be processed, never `null`.
    Returns:
      potentially modified or new item for continued processing, `null` if processing of the provided item should not continue.
    Throws:
      `Exception` - thrown if exception occurs during processing.

  - ### afterPropertiesSet

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

  - ### setDelegates

    public void setDelegates(List<? extends ItemProcessor<?,?>> delegates)
    Establishes the `ItemProcessor` delegates that will work on the item to be processed.
    Parameters:
      `delegates` - list of `ItemProcessor` delegates that will work on the item.