Class WhileClosure
java.lang.Object
org.apache.commons.collections.functors.WhileClosure
- All Implemented Interfaces:
Serializable
,Closure
Closure implementation that executes a closure repeatedly until a condition is met,
like a do-while or while loop.
WARNING: from v3.2.2 onwards this class will throw an
UnsupportedOperationException
when trying to serialize or
de-serialize an instance to prevent potential remote code execution exploits.
In order to re-enable serialization support for WhileClosure
the following system property can be used (via -Dproperty=true):
org.apache.commons.collections.enableUnsafeSerialization
- Since:
- Commons Collections 3.0
- Version:
- $Revision: 1713845 $ $Date: 2015-11-11 15:02:16 +0100 (Wed, 11 Nov 2015) $
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionWhileClosure
(Predicate predicate, Closure closure, boolean doLoop) Constructor that performs no validation. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Executes the closure until the predicate is false.Gets the closure.static Closure
getInstance
(Predicate predicate, Closure closure, boolean doLoop) Factory method that performs validation.Gets the predicate in use.boolean
isDoLoop()
Is the loop a do-while loop.private void
Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).private void
Overrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerial version UID- See Also:
-
iPredicate
The test condition -
iClosure
The closure to call -
iDoLoop
private final boolean iDoLoopThe flag, true is a do loop, false is a while
-
-
Constructor Details
-
WhileClosure
Constructor that performs no validation. UsegetInstance
if 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 Details
-
getInstance
Factory method that performs validation.- 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
while
closure - Throws:
IllegalArgumentException
- if the predicate or closure is null
-
execute
Executes the closure until the predicate is false. -
getPredicate
Gets the predicate in use.- Returns:
- the predicate
- Since:
- Commons Collections 3.1
-
getClosure
Gets the closure.- Returns:
- the closure
- Since:
- Commons Collections 3.1
-
isDoLoop
public boolean isDoLoop()Is the loop a do-while loop.- Returns:
- true is do-while, false if while
- Since:
- Commons Collections 3.1
-
writeObject
Overrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).- Throws:
IOException
-
readObject
Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).- Throws:
ClassNotFoundException
IOException
-