Class IfClosure<E>

  • All Implemented Interfaces:
    java.io.Serializable, Closure<E>

    public class IfClosure<E>
    extends java.lang.Object
    implements Closure<E>, java.io.Serializable
    Closure implementation acts as an if statement calling one or other closure based on a predicate.
    Since:
    3.0
    See Also:
    Serialized Form
    • Constructor Detail

      • IfClosure

        public IfClosure​(Predicate<? super E> predicate,
                         Closure<? super E> trueClosure)
        Constructor that performs no validation. Use ifClosure if you want that.

        This constructor creates a closure that performs no action when the predicate is false.

        Parameters:
        predicate - predicate to switch on, not null
        trueClosure - closure used if true, not null
        Since:
        3.2
      • IfClosure

        public IfClosure​(Predicate<? super E> predicate,
                         Closure<? super E> trueClosure,
                         Closure<? super E> falseClosure)
        Constructor that performs no validation. Use ifClosure if you want that.
        Parameters:
        predicate - predicate to switch on, not null
        trueClosure - closure used if true, not null
        falseClosure - closure used if false, not null
    • Method Detail

      • ifClosure

        public static <E> Closure<E> ifClosure​(Predicate<? super E> predicate,
                                               Closure<? super E> trueClosure)
        Factory method that performs validation.

        This factory creates a closure that performs no action when the predicate is false.

        Type Parameters:
        E - the type that the closure acts on
        Parameters:
        predicate - predicate to switch on
        trueClosure - closure used if true
        Returns:
        the if closure
        Throws:
        java.lang.NullPointerException - if either argument is null
        Since:
        3.2
      • ifClosure

        public static <E> Closure<E> ifClosure​(Predicate<? super E> predicate,
                                               Closure<? super E> trueClosure,
                                               Closure<? super E> falseClosure)
        Factory method that performs validation.
        Type Parameters:
        E - the type that the closure acts on
        Parameters:
        predicate - predicate to switch on
        trueClosure - closure used if true
        falseClosure - closure used if false
        Returns:
        the if closure
        Throws:
        java.lang.NullPointerException - if any argument is null
      • execute

        public void execute​(E input)
        Executes the true or false closure according to the result of the predicate.
        Specified by:
        execute in interface Closure<E>
        Parameters:
        input - the input object
      • getPredicate

        public Predicate<? super E> getPredicate()
        Gets the predicate.
        Returns:
        the predicate
        Since:
        3.1
      • getTrueClosure

        public Closure<? super E> getTrueClosure()
        Gets the closure called when true.
        Returns:
        the closure
        Since:
        3.1
      • getFalseClosure

        public Closure<? super E> getFalseClosure()
        Gets the closure called when false.
        Returns:
        the closure
        Since:
        3.1