# Uses of Interface
org.apache.commons.collections4.Closure

Packages that use Closure
Package
Description
org.apache.commons.collections4
Interfaces and utilities shared across all packages.
org.apache.commons.collections4.functors
Implements the `Closure`, `Predicate`, `Transformer` and `Factory` interfaces.

- ## Uses of Closure in org.apache.commons.collections4

  Methods in org.apache.commons.collections4 with type parameters of type Closure
  Modifier and Type
  Method
  Description
  `static <T, C extends Closure<? super T>>
  T`
  CollectionUtils.`forAllButLastDo(Iterable<T> collection, C closure)`
  Deprecated.
  since 4.1, use `IterableUtils.forEachButLast(Iterable, Closure)` instead
  `static <T, C extends Closure<? super T>>
  T`
  CollectionUtils.`forAllButLastDo(Iterator<T> iterator, C closure)`
  Deprecated.
  since 4.1, use `IteratorUtils.forEachButLast(Iterator, Closure)` instead
  `static <T, C extends Closure<? super T>>
  C`
  CollectionUtils.`forAllDo(Iterable<T> collection, C closure)`
  Deprecated.
  since 4.1, use `IterableUtils.forEach(Iterable, Closure)` instead
  `static <T, C extends Closure<? super T>>
  C`
  CollectionUtils.`forAllDo(Iterator<T> iterator, C closure)`
  Deprecated.
  since 4.1, use `IteratorUtils.forEach(Iterator, Closure)` instead
  Methods in org.apache.commons.collections4 that return Closure
  Modifier and Type
  Method
  Description
  `static <E> Closure<E>`
  ClosureUtils.`asClosure(Transformer<? super E,?> transformer)`
  Creates a Closure that calls a Transformer each time it is called.
  `static <E> Closure<E>`
  ClosureUtils.`chainedClosure(Collection<? extends Closure<? super E>> closures)`
  Create a new Closure that calls each closure in turn, passing the result into the next closure.
  `static <E> Closure<E>`
  ClosureUtils.`chainedClosure(Closure<? super E>... closures)`
  Create a new Closure that calls each closure in turn, passing the result into the next closure.
  `static <E> Closure<E>`
  ClosureUtils.`doWhileClosure(Closure<? super E> closure, Predicate<? super E> predicate)`
  Creates a Closure that will call the closure once and then repeatedly until the predicate returns false.
  `static <E> Closure<E>`
  ClosureUtils.`exceptionClosure()`
  Gets a Closure that always throws an exception.
  `static <E> Closure<E>`
  ClosureUtils.`forClosure(int count, Closure<? super E> closure)`
  Creates a Closure that will call the closure `count` times.
  `static <E> Closure<E>`
  ClosureUtils.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure)`
  Create a new Closure that calls another closure based on the result of the specified predicate.
  `static <E> Closure<E>`
  ClosureUtils.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure, Closure<? super E> falseClosure)`
  Create a new Closure that calls one of two closures depending on the specified predicate.
  `static <E> Closure<E>`
  ClosureUtils.`invokerClosure(String methodName)`
  Creates a Closure that will invoke a specific method on the closure's input object by reflection.
  `static <E> Closure<E>`
  ClosureUtils.`invokerClosure(String methodName, Class<?>[] paramTypes, Object[] args)`
  Creates a Closure that will invoke a specific method on the closure's input object by reflection.
  `static <E> Closure<E>`
  ClosureUtils.`nopClosure()`
  Gets a Closure that will do nothing.
  `static <E> Closure<E>`
  ClosureUtils.`switchClosure(Map<Predicate<E>,Closure<E>> predicatesAndClosures)`
  Create a new Closure that calls one of the closures depending on the predicates.
  `static <E> Closure<E>`
  ClosureUtils.`switchClosure(Predicate<? super E>[] predicates, Closure<? super E>[] closures)`
  Create a new Closure that calls one of the closures depending on the predicates.
  `static <E> Closure<E>`
  ClosureUtils.`switchClosure(Predicate<? super E>[] predicates, Closure<? super E>[] closures, Closure<? super E> defaultClosure)`
  Create a new Closure that calls one of the closures depending on the predicates.
  `static <E> Closure<E>`
  ClosureUtils.`switchMapClosure(Map<? extends E,Closure<E>> objectsAndClosures)`
  Create a new Closure that uses the input object as a key to find the closure to call.
  `static <E> Closure<E>`
  ClosureUtils.`whileClosure(Predicate<? super E> predicate, Closure<? super E> closure)`
  Creates a Closure that will call the closure repeatedly until the predicate returns false.
  Methods in org.apache.commons.collections4 with parameters of type Closure
  Modifier and Type
  Method
  Description
  `static <T> Transformer<T,T>`
  TransformerUtils.`asTransformer(Closure<? super T> closure)`
  Creates a Transformer that calls a Closure each time the transformer is used.
  `static <E> Closure<E>`
  ClosureUtils.`chainedClosure(Closure<? super E>... closures)`
  Create a new Closure that calls each closure in turn, passing the result into the next closure.
  `static <E> Closure<E>`
  ClosureUtils.`doWhileClosure(Closure<? super E> closure, Predicate<? super E> predicate)`
  Creates a Closure that will call the closure once and then repeatedly until the predicate returns false.
  `static <E> Closure<E>`
  ClosureUtils.`forClosure(int count, Closure<? super E> closure)`
  Creates a Closure that will call the closure `count` times.
  `void`
  FluentIterable.`forEach(Closure<? super E> closure)`
  Applies the closure to all elements contained in this iterable.
  `static <E> void`
  IterableUtils.`forEach(Iterable<E> iterable, Closure<? super E> closure)`
  Applies the closure to each element of the provided iterable.
  `static <E> void`
  IteratorUtils.`forEach(Iterator<E> iterator, Closure<? super E> closure)`
  Applies the closure to each element of the provided iterator.
  `static <E> E`
  IterableUtils.`forEachButLast(Iterable<E> iterable, Closure<? super E> closure)`
  Executes the given closure on each but the last element in the iterable.
  `static <E> E`
  IteratorUtils.`forEachButLast(Iterator<E> iterator, Closure<? super E> closure)`
  Executes the given closure on each but the last element in the iterator.
  `static <E> Closure<E>`
  ClosureUtils.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure)`
  Create a new Closure that calls another closure based on the result of the specified predicate.
  `static <E> Closure<E>`
  ClosureUtils.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure, Closure<? super E> falseClosure)`
  Create a new Closure that calls one of two closures depending on the specified predicate.
  `static <E> Closure<E>`
  ClosureUtils.`switchClosure(Predicate<? super E>[] predicates, Closure<? super E>[] closures)`
  Create a new Closure that calls one of the closures depending on the predicates.
  `static <E> Closure<E>`
  ClosureUtils.`switchClosure(Predicate<? super E>[] predicates, Closure<? super E>[] closures, Closure<? super E> defaultClosure)`
  Create a new Closure that calls one of the closures depending on the predicates.
  `static <E> Closure<E>`
  ClosureUtils.`whileClosure(Predicate<? super E> predicate, Closure<? super E> closure)`
  Creates a Closure that will call the closure repeatedly until the predicate returns false.
  Method parameters in org.apache.commons.collections4 with type arguments of type Closure
  Modifier and Type
  Method
  Description
  `static <E> Closure<E>`
  ClosureUtils.`chainedClosure(Collection<? extends Closure<? super E>> closures)`
  Create a new Closure that calls each closure in turn, passing the result into the next closure.
  `static <E> Closure<E>`
  ClosureUtils.`switchClosure(Map<Predicate<E>,Closure<E>> predicatesAndClosures)`
  Create a new Closure that calls one of the closures depending on the predicates.
  `static <E> Closure<E>`
  ClosureUtils.`switchMapClosure(Map<? extends E,Closure<E>> objectsAndClosures)`
  Create a new Closure that uses the input object as a key to find the closure to call.

- ## Uses of Closure in org.apache.commons.collections4.functors

  Classes in org.apache.commons.collections4.functors that implement Closure
  Modifier and Type
  Class
  Description
  `class`
  `CatchAndRethrowClosure<T>`
  `Closure` that catches any checked exception and re-throws it as a `FunctorException` runtime exception.
  `class`
  `ChainedClosure<T>`
  Closure implementation that chains the specified closures together.
  `final class`
  `ExceptionClosure<T>`
  Closure implementation that always throws an exception.
  `class`
  `ForClosure<T>`
  Closure implementation that calls another closure n times, like a for loop.
  `class`
  `IfClosure<T>`
  Closure implementation acts as an if statement calling one or other closure based on a predicate.
  `final class`
  `NOPClosure<T>`
  Closure implementation that does nothing.
  `class`
  `SwitchClosure<T>`
  Closure implementation calls the closure whose predicate returns true, like a switch statement.
  `class`
  `TransformerClosure<T>`
  Closure implementation that calls a Transformer using the input object and ignore the result.
  `class`
  `WhileClosure<T>`
  Closure implementation that executes a closure repeatedly until a condition is met, like a do-while or while loop.
  Fields in org.apache.commons.collections4.functors declared as Closure
  Modifier and Type
  Field
  Description
  `static final Closure`
  ExceptionClosure.`INSTANCE`
  Singleton predicate instance
  `static final Closure`
  NOPClosure.`INSTANCE`
  Singleton predicate instance
  Methods in org.apache.commons.collections4.functors that return Closure
  Modifier and Type
  Method
  Description
  `static <E> Closure<E>`
  ChainedClosure.`chainedClosure(Collection<? extends Closure<? super E>> closures)`
  Create a new Closure that calls each closure in turn, passing the result into the next closure.
  `static <E> Closure<E>`
  ChainedClosure.`chainedClosure(Closure<? super E>... closures)`
  Factory method that performs validation and copies the parameter array.
  `static <T> Closure<T>`
  ExceptionClosure.`exceptionClosure()`
  Factory returning the singleton instance.
  `static <E> Closure<E>`
  ForClosure.`forClosure(int count, Closure<? super E> closure)`
  Factory method that performs validation.
  `Closure<? super T>`
  ClosureTransformer.`getClosure()`
  Gets the closure.
  `Closure<? super T>`
  ForClosure.`getClosure()`
  Gets the closure.
  `Closure<? super T>`
  WhileClosure.`getClosure()`
  Gets the closure.
  `Closure<? super T>[]`
  ChainedClosure.`getClosures()`
  Gets the closures.
  `Closure<? super T>[]`
  SwitchClosure.`getClosures()`
  Gets the closures.
  `Closure<? super T>`
  SwitchClosure.`getDefaultClosure()`
  Gets the default closure.
  `Closure<? super T>`
  IfClosure.`getFalseClosure()`
  Gets the closure called when false.
  `Closure<? super T>`
  IfClosure.`getTrueClosure()`
  Gets the closure called when true.
  `static <E> Closure<E>`
  IfClosure.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure)`
  Factory method that performs validation.
  `static <E> Closure<E>`
  IfClosure.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure, Closure<? super E> falseClosure)`
  Factory method that performs validation.
  `static <E> Closure<E>`
  NOPClosure.`nopClosure()`
  Factory returning the singleton instance.
  `static <E> Closure<E>`
  SwitchClosure.`switchClosure(Map<Predicate<E>,Closure<E>> predicatesAndClosures)`
  Create a new Closure that calls one of the closures depending on the predicates.
  `static <E> Closure<E>`
  SwitchClosure.`switchClosure(Predicate<? super E>[] predicates, Closure<? super E>[] closures, Closure<? super E> defaultClosure)`
  Factory method that performs validation and copies the parameter arrays.
  `static <E> Closure<E>`
  TransformerClosure.`transformerClosure(Transformer<? super E,?> transformer)`
  Factory method that performs validation.
  `static <E> Closure<E>`
  WhileClosure.`whileClosure(Predicate<? super E> predicate, Closure<? super E> closure, boolean doLoop)`
  Factory method that performs validation.
  Methods in org.apache.commons.collections4.functors with parameters of type Closure
  Modifier and Type
  Method
  Description
  `static <E> Closure<E>`
  ChainedClosure.`chainedClosure(Closure<? super E>... closures)`
  Factory method that performs validation and copies the parameter array.
  `static <T> Transformer<T,T>`
  ClosureTransformer.`closureTransformer(Closure<? super T> closure)`
  Factory method that performs validation.
  `static <E> Closure<E>`
  ForClosure.`forClosure(int count, Closure<? super E> closure)`
  Factory method that performs validation.
  `static <E> Closure<E>`
  IfClosure.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure)`
  Factory method that performs validation.
  `static <E> Closure<E>`
  IfClosure.`ifClosure(Predicate<? super E> predicate, Closure<? super E> trueClosure, Closure<? super E> falseClosure)`
  Factory method that performs validation.
  `static <E> Closure<E>`
  SwitchClosure.`switchClosure(Predicate<? super E>[] predicates, Closure<? super E>[] closures, Closure<? super E> defaultClosure)`
  Factory method that performs validation and copies the parameter arrays.
  `static <E> Closure<E>`
  WhileClosure.`whileClosure(Predicate<? super E> predicate, Closure<? super E> closure, boolean doLoop)`
  Factory method that performs validation.
  Method parameters in org.apache.commons.collections4.functors with type arguments of type Closure
  Modifier and Type
  Method
  Description
  `static <E> Closure<E>`
  ChainedClosure.`chainedClosure(Collection<? extends Closure<? super E>> closures)`
  Create a new Closure that calls each closure in turn, passing the result into the next closure.
  `static <E> Closure<E>`
  SwitchClosure.`switchClosure(Map<Predicate<E>,Closure<E>> predicatesAndClosures)`
  Create a new Closure that calls one of the closures depending on the predicates.
  Constructors in org.apache.commons.collections4.functors with parameters of type Closure
  Modifier
  Constructor
  Description
  ``
  `ChainedClosure(Closure<? super T>... closures)`
  Constructor that performs no validation.
  ``
  `ClosureTransformer(Closure<? super T> closure)`
  Constructor that performs no validation.
  ``
  `ForClosure(int count, Closure<? super T> closure)`
  Constructor that performs no validation.
  ``
  `IfClosure(Predicate<? super T> predicate, Closure<? super T> trueClosure)`
  Constructor that performs no validation.
  ``
  `IfClosure(Predicate<? super T> predicate, Closure<? super T> trueClosure, Closure<? super T> falseClosure)`
  Constructor that performs no validation.
  ``
  `SwitchClosure(Predicate<? super T>[] predicates, Closure<? super T>[] closures, Closure<? super T> defaultClosure)`
  Constructor that performs no validation.
  ``
  `WhileClosure(Predicate<? super T> predicate, Closure<? super T> closure, boolean doLoop)`
  Constructor that performs no validation.