# Class ChainedTransformer<T>

java.lang.Object
org.apache.commons.collections4.functors.ChainedTransformer<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 ChainedTransformer<T> extends Object implements Transformer<T,T>, Serializable
Transformer implementation that chains the specified transformers together.

The input object is passed to the first transformer. The transformed result is passed to the second transformer and so on.

Since:
  3.0
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ChainedTransformer(Transformer<? super T,? extends T>... transformers)`
  Constructor that performs no validation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <T> Transformer<T,T>`
  `chainedTransformer(Collection<? extends Transformer<? super T,? extends T>> transformers)`
  Create a new Transformer that calls each transformer in turn, passing the result into the next transformer.
  `static <T> Transformer<T,T>`
  `chainedTransformer(Transformer<? super T,? extends T>... transformers)`
  Factory method that performs validation and copies the parameter array.
  `Transformer<? super T,? extends T>[]`
  `getTransformers()`
  Gets the transformers.
  `T`
  `transform(T object)`
  Transforms the input to result via each decorated transformer

  ### 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

  - ### ChainedTransformer

    public ChainedTransformer(Transformer<? super T,? extends T>... transformers)
    Constructor that performs no validation. Use `chainedTransformer` if you want that.
    Parameters:
      `transformers` - the transformers to chain, copied, no nulls

- ## Method Details

  - ### chainedTransformer

    public static <T> Transformer<T,T> chainedTransformer(Collection<? extends Transformer<? super T,? extends T>> transformers)
    Create a new Transformer that calls each transformer in turn, passing the result into the next transformer. The ordering is that of the iterator() method on the collection.
    Type Parameters:
      `T` - the object type
    Parameters:
      `transformers` - a collection of transformers to chain
    Returns:
      the `chained` transformer
    Throws:
      `NullPointerException` - if the transformers collection is null
      `NullPointerException` - if any transformer in the collection is null

  - ### chainedTransformer

    public static <T> Transformer<T,T> chainedTransformer(Transformer<? super T,? extends T>... transformers)
    Factory method that performs validation and copies the parameter array.
    Type Parameters:
      `T` - the object type
    Parameters:
      `transformers` - the transformers to chain, copied, no nulls
    Returns:
      the `chained` transformer
    Throws:
      `NullPointerException` - if the transformers array is null
      `NullPointerException` - if any transformer in the array is null

  - ### getTransformers

    public Transformer<? super T,? extends T>[] getTransformers()
    Gets the transformers.
    Returns:
      a copy of the transformers
    Since:
      3.1

  - ### transform

    public T transform(T object)
    Transforms the input to result via each decorated transformer
    Specified by:
      `transform` in interface `Transformer<T,T>`
    Parameters:
      `object` - the input object passed to the first transformer
    Returns:
      the transformed result