org.apache.commons.collections4.functors

## Class InvokerTransformer<I,O>

- java.lang.Object
- - org.apache.commons.collections4.functors.InvokerTransformer<I,O>

- All Implemented Interfaces:
    Transformer<I,O>

      public class InvokerTransformer<I,O>
      extends Object
      implements Transformer<I,O>

  Transformer implementation that creates a new object instance by reflection.

  WARNING: from v4.1 onwards this class will not be serializable anymore in order to prevent potential remote code execution exploits. Please refer to COLLECTIONS-580 for more details.

  Since:
    3.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `InvokerTransformer(String methodName, Class<?>[] paramTypes, Object[] args)` Constructor that performs no validation.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <I,O> Transformer<I,O>` | `invokerTransformer(String methodName)` Gets an instance of this transformer calling a specific method with no arguments.
    `static <I,O> Transformer<I,O>` | `invokerTransformer(String methodName, Class<?>[] paramTypes, Object[] args)` Gets an instance of this transformer calling a specific method with specific values.
    `O` | `transform(Object input)` Transforms the input to result by invoking a method on the input.

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

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

- - ### Constructor Detail

    - #### InvokerTransformer

          public InvokerTransformer(String methodName,
                                    Class<?>[] paramTypes,
                                    Object[] args)

      Constructor that performs no validation. Use `invokerTransformer` if you want that.

      Note: from 4.0, the input parameters will be cloned

      Parameters:
        `methodName` - the method to call
        `paramTypes` - the constructor parameter types
        `args` - the constructor arguments

  - ### Method Detail

    - #### invokerTransformer

          public static <I,O> Transformer<I,O> invokerTransformer(String methodName)

      Gets an instance of this transformer calling a specific method with no arguments.
      Type Parameters:
        `I` - the input type
        `O` - the output type
      Parameters:
        `methodName` - the method name to call
      Returns:
        an invoker transformer
      Throws:
        `NullPointerException` - if methodName is null
      Since:
        3.1

    - #### invokerTransformer

          public static <I,O> Transformer<I,O> invokerTransformer(String methodName,
                                                                  Class<?>[] paramTypes,
                                                                  Object[] args)

      Gets an instance of this transformer calling a specific method with specific values.
      Type Parameters:
        `I` - the input type
        `O` - the output type
      Parameters:
        `methodName` - the method name to call
        `paramTypes` - the parameter types of the method
        `args` - the arguments to pass to the method
      Returns:
        an invoker transformer
      Throws:
        `NullPointerException` - if methodName is null
        `IllegalArgumentException` - if paramTypes does not match args

    - #### transform

          public O transform(Object input)

      Transforms the input to result by invoking a method on the input.
      Specified by:
        `transform` in interface `Transformer<I,O>`
      Parameters:
        `input` - the input object to transform
      Returns:
        the transformed result, null if null input

Copyright © 2001–2019 The Apache Software Foundation. All rights reserved.