org.apache.commons.collections.functors
Class WhileClosure

java.lang.Object
  extended by org.apache.commons.collections.functors.WhileClosure
All Implemented Interfaces:
java.io.Serializable, Closure

public class WhileClosure
extends java.lang.Object
implements Closure, java.io.Serializable

Closure implementation that executes a closure repeatedly until a condition is met, like a do-while or while loop.

Since:
Commons Collections 3.0
Version:
$Revision: 646777 $ $Date: 2008-04-10 13:33:15 +0100 (Thu, 10 Apr 2008) $
Author:
Stephen Colebourne
See Also:
Serialized Form

Constructor Summary
WhileClosure(Predicate predicate, Closure closure, boolean doLoop)
          Constructor that performs no validation.
 
Method Summary
 void execute(java.lang.Object input)
          Executes the closure until the predicate is false.
 Closure getClosure()
          Gets the closure.
static Closure getInstance(Predicate predicate, Closure closure, boolean doLoop)
          Factory method that performs validation.
 Predicate getPredicate()
          Gets the predicate in use.
 boolean isDoLoop()
          Is the loop a do-while loop.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WhileClosure

public WhileClosure(Predicate predicate,
                    Closure closure,
                    boolean doLoop)
Constructor that performs no validation. Use getInstance if you want that.

Parameters:
predicate - the predicate used to evaluate when the loop terminates, not null
closure - the closure the execute, not null
doLoop - true to act as a do-while loop, always executing the closure once
Method Detail

getInstance

public static Closure getInstance(Predicate predicate,
                                  Closure closure,
                                  boolean doLoop)
Factory method that performs validation.

Parameters:
predicate - the predicate used to evaluate when the loop terminates, not null
closure - the closure the execute, not null
doLoop - true to act as a do-while loop, always executing the closure once
Returns:
the while closure
Throws:
java.lang.IllegalArgumentException - if the predicate or closure is null

execute

public void execute(java.lang.Object input)
Executes the closure until the predicate is false.

Specified by:
execute in interface Closure
Parameters:
input - the input object

getPredicate

public Predicate getPredicate()
Gets the predicate in use.

Returns:
the predicate
Since:
Commons Collections 3.1

getClosure

public Closure 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


Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.