Class IfTransformer<I,O>

  • Type Parameters:
    I - The input type for the transformer
    O - The output type for the transformer
    All Implemented Interfaces:
    Serializable, 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:
    Serialized Form
    • Constructor Detail

      • 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 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:
        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
      • 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
      • 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
      • getFalseTransformer

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