# Class ClosureTransformer<T>

java.lang.Object
org.apache.commons.collections4.functors.ClosureTransformer<T>

Type Parameters:
  `T` - the type of the input and result to the function.

All Implemented Interfaces:
  `Serializable`, `Function<T,T>`, `Transformer<T,T>`

public class ClosureTransformer<T> extends Object implements Transformer<T,T>, Serializable
Transformer implementation that calls a Closure using the input object and then returns the input.

Since:
  3.0
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClosureTransformer(Closure<? super T> closure)`
  Constructor that performs no validation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <T> Transformer<T,T>`
  `closureTransformer(Closure<? super T> closure)`
  Factory method that performs validation.
  `Closure<? super T>`
  `getClosure()`
  Gets the closure.
  `T`
  `transform(T input)`
  Transforms the input to result by executing a closure.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.util.function.Function

  `andThen, compose`

  ### Methods inherited from interface org.apache.commons.collections4.Transformer

  `apply`

- ## Constructor Details

  - ### ClosureTransformer

    public ClosureTransformer(Closure<? super T> closure)
    Constructor that performs no validation. Use `closureTransformer` if you want that.
    Parameters:
      `closure` - the closure to call, not null

- ## Method Details

  - ### closureTransformer

    public static <T> Transformer<T,T> closureTransformer(Closure<? super T> closure)
    Factory method that performs validation.
    Type Parameters:
      `T` - the type of the object to transform
    Parameters:
      `closure` - the closure to call, not null
    Returns:
      the `closure` transformer
    Throws:
      `NullPointerException` - if the closure is null

  - ### getClosure

    public Closure<? super T> getClosure()
    Gets the closure.
    Returns:
      the closure
    Since:
      3.1

  - ### transform

    public T transform(T input)
    Transforms the input to result by executing a closure.
    Specified by:
      `transform` in interface `Transformer<T,T>`
    Parameters:
      `input` - the input object to transform
    Returns:
      the transformed result