## org.apache.commons.collections.functors
Class WhileClosure

    java.lang.Object
      org.apache.commons.collections.functors.WhileClosure

All Implemented Interfaces:
  Closure, Serializable

public class WhileClosure
extends Object
implements Closure, 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: 1.5 $ $Date: 2004/05/16 11:47:38 $
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(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:
    `IllegalArgumentException` - if the predicate or closure is null

### execute

    public void execute(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-2005 Apache Software Foundation. All Rights Reserved.