Class IfTransformer<I,O>

java.lang.Object
org.apache.commons.collections4.functors.IfTransformer<I,O>
Type Parameters:
I - The input type for the transformer
O - The output type for the transformer
All Implemented Interfaces:
Serializable, Function<I,O>, Transformer<I,O>

public class IfTransformer<I,O> extends Object implements Transformer<I,O>, Serializable
Transformer implementation that will call one of two closures based on whether a predicate evaluates as true or false.
Since:
4.1
See Also:
  • Constructor Details

    • IfTransformer

      public IfTransformer(Predicate<? super I> predicate, Transformer<? super I,? extends O> trueTransformer, Transformer<? super I,? extends O> falseTransformer)
      Constructor that performs no validation. Use the static factory method ifTransformer if you want that.
      Parameters:
      predicate - predicate to switch on, not null
      trueTransformer - transformer used if true, not null
      falseTransformer - transformer used if false, not null
  • Method Details

    • ifTransformer

      public static <I, O> Transformer<I,O> ifTransformer(Predicate<? super I> predicate, Transformer<? super I,? extends O> trueTransformer, Transformer<? super I,? extends O> falseTransformer)
      Factory method that performs validation.
      Type Parameters:
      I - input type for the transformer
      O - output type for the transformer
      Parameters:
      predicate - predicate to switch on
      trueTransformer - transformer used if true
      falseTransformer - transformer used if false
      Returns:
      the if transformer
      Throws:
      NullPointerException - if either argument is null
    • ifTransformer

      public static <T> Transformer<T,T> ifTransformer(Predicate<? super T> predicate, Transformer<? super T,? extends T> trueTransformer)
      Factory method that performs validation.

      This factory creates a transformer that just returns the input object when the predicate is false.

      Type Parameters:
      T - input and output type for the transformer
      Parameters:
      predicate - predicate to switch on
      trueTransformer - transformer used if true
      Returns:
      the if transformer
      Throws:
      NullPointerException - if either argument is null
    • getFalseTransformer

      public Transformer<? super I,? extends O> getFalseTransformer()
      Gets the transformer used when false.
      Returns:
      the transformer
    • getPredicate

      public Predicate<? super I> getPredicate()
      Gets the predicate.
      Returns:
      the predicate
    • getTrueTransformer

      public Transformer<? super I,? extends O> getTrueTransformer()
      Gets the transformer used when true.
      Returns:
      the transformer
    • transform

      public O transform(I input)
      Transforms the input using the true or false transformer based to the result of the predicate.
      Specified by:
      transform in interface Transformer<I,O>
      Parameters:
      input - the input object to transform
      Returns:
      the transformed result