Class WhileClosure<E>
- java.lang.Object
-
- org.apache.commons.collections4.functors.WhileClosure<E>
-
- All Implemented Interfaces:
Closure<E>
public class WhileClosure<E> extends java.lang.Object implements Closure<E>
Closure implementation that executes a closure repeatedly until a condition is met, like a do-while or while loop.WARNING: from v4.1 onwards this class will not be serializable anymore in order to prevent potential remote code execution exploits. Please refer to COLLECTIONS-580 for more details.
- Since:
- 3.0
-
-
Constructor Summary
Constructors Constructor Description WhileClosure(Predicate<? super E> predicate, Closure<? super E> closure, boolean doLoop)Constructor that performs no validation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexecute(E input)Executes the closure until the predicate is false.Closure<? super E>getClosure()Gets the closure.Predicate<? super E>getPredicate()Gets the predicate in use.booleanisDoLoop()Is the loop a do-while loop.static <E> Closure<E>whileClosure(Predicate<? super E> predicate, Closure<? super E> closure, boolean doLoop)Factory method that performs validation.
-
-
-
Constructor Detail
-
WhileClosure
public WhileClosure(Predicate<? super E> predicate, Closure<? super E> closure, boolean doLoop)
Constructor that performs no validation. UsewhileClosureif you want that.- Parameters:
predicate- the predicate used to evaluate when the loop terminates, not nullclosure- the closure the execute, not nulldoLoop- true to act as a do-while loop, always executing the closure once
-
-
Method Detail
-
whileClosure
public static <E> Closure<E> whileClosure(Predicate<? super E> predicate, Closure<? super E> closure, boolean doLoop)
Factory method that performs validation.- Type Parameters:
E- the type that the closure acts on- Parameters:
predicate- the predicate used to evaluate when the loop terminates, not nullclosure- the closure the execute, not nulldoLoop- true to act as a do-while loop, always executing the closure once- Returns:
- the
whileclosure - Throws:
java.lang.NullPointerException- if the predicate or closure is null
-
execute
public void execute(E input)
Executes the closure until the predicate is false.
-
getPredicate
public Predicate<? super E> getPredicate()
Gets the predicate in use.- Returns:
- the predicate
- Since:
- 3.1
-
isDoLoop
public boolean isDoLoop()
Is the loop a do-while loop.- Returns:
- true is do-while, false if while
- Since:
- 3.1
-
-