org.springframework.batch.item

## Interface ItemProcessor<I,O>

- Type Parameters:
    `I` - type of input item
    `O` - type of output item
  All Known Implementing Classes:
    AsyncItemProcessor, BeanValidatingItemProcessor, ClassifierCompositeItemProcessor, CompositeItemProcessor, FunctionItemProcessor, ItemProcessorAdapter, ItemProcessorAdapter, PassThroughItemProcessor, ScriptItemProcessor, ValidatingItemProcessor

      public interface ItemProcessor<I,O>

  Interface for item transformation. Given an item as input, this interface provides an extension point which allows for the application of business logic in an item oriented processing scenario. It should be noted that while it's possible to return a different type than the one provided, it's not strictly necessary. Furthermore, returning `null` indicates that the item should not be continued to be processed.
  Author:
    Robert Kasanicky, Dave Syer, Mahmoud Ben Hassine

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `O` | `process(I item)` Process the provided item, returning a potentially modified or new item for continued processing.

- - ### Method Detail

    - #### process

          @Nullable
          O process(@NonNull
                              I item)
                       throws java.lang.Exception

      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)
      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.