Class IfClosure<T>

java.lang.Object
org.apache.commons.collections4.functors.IfClosure<T>
Type Parameters:
T - the type of the input to the operation.
All Implemented Interfaces:
Serializable, Consumer<T>, Closure<T>

public class IfClosure<T> extends Object implements Closure<T>, Serializable
Closure implementation acts as an if statement calling one or other closure based on a predicate.
Since:
3.0
See Also:
  • Constructor Details

    • IfClosure

      public IfClosure(Predicate<? super T> predicate, Closure<? super T> 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 T> predicate, Closure<? super T> trueClosure, Closure<? super T> 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 Details

    • 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:
      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:
      NullPointerException - if any argument is null
    • execute

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

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

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

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