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 java.lang.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 and Description
    `CompositeItemProcessor()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()`
    `O` | `process(I item)` Process the provided item, returning a potentially modified or new item for continued processing.
    `void` | `setDelegates(java.util.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 Detail

    - #### CompositeItemProcessor

          public CompositeItemProcessor()

  - ### Method Detail

    - #### process

          @Nullable
          public O process(I item)
                              throws java.lang.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:
        `java.lang.Exception` - thrown if exception occurs during processing.

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws java.lang.Exception

      Specified by:
        `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
      Throws:
        `java.lang.Exception`

    - #### setDelegates

          public void setDelegates(java.util.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.