Class 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:
    java.io.Serializable, java.util.function.Function<T,​R>, Transformer<T,​R>

    public class IfTransformer<T,​R>
    extends java.lang.Object
    implements Transformer<T,​R>, java.io.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:
    Serialized Form
    • Constructor Detail

      • 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 Detail

      • 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:
        java.lang.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:
        java.lang.NullPointerException - if either argument is null
      • 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