Class IfClosure<E>

java.lang.Object
org.apache.commons.collections4.functors.IfClosure<E>
All Implemented Interfaces:
Serializable, Closure<E>

public class IfClosure<E> extends Object implements Closure<E>, 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 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 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(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
    • getFalseClosure

      public Closure<? super E> getFalseClosure()
      Gets the closure called when false.
      Returns:
      the closure
      Since:
      3.1
    • 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