Class ClassifierCompositeItemProcessor<I,O>

java.lang.Object
org.springframework.batch.item.support.ClassifierCompositeItemProcessor<I,O>
All Implemented Interfaces:
ItemProcessor<I,O>

public class ClassifierCompositeItemProcessor<I,O> extends Object implements ItemProcessor<I,O>
Calls one of a collection of ItemProcessors, based on a router pattern implemented through the provided Classifier. Note the user is responsible for injecting a Classifier that returns an ItemProcessor that conforms to the declared input and output types.
Since:
3.0
Author:
Jimmy Praet
  • Constructor Details

    • ClassifierCompositeItemProcessor

      public ClassifierCompositeItemProcessor()
  • Method Details

    • setClassifier

      public void setClassifier(org.springframework.classify.Classifier<? super I,ItemProcessor<?,? extends O>> classifier)
      Establishes the classifier that will determine which ItemProcessor to use.
      Parameters:
      classifier - the Classifier to set
    • process

      @Nullable public O process(I item) throws Exception
      Delegates to injected ItemProcessor instances according to the classification by the Classifier.
      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.