Class IfTransformer<T,R>

java.lang.Object
org.apache.commons.collections4.functors.IfTransformer<T,R>
Type Parameters:
T - the type of the input to the function.
R - the type of the result of the function.
All Implemented Interfaces:
Serializable, Function<T,R>, Transformer<T,R>

public class IfTransformer<T,R> extends Object implements Transformer<T,R>, 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 T> predicate, Transformer<? super T,? extends R> trueTransformer, Transformer<? super T,? extends R> 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 T,? extends R> getFalseTransformer()
      Gets the transformer used when false.
      Returns:
      the transformer
    • getPredicate

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

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

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