org.apache.commons.collections.functors

## Class InvokerTransformer

- java.lang.Object
- - org.apache.commons.collections.functors.InvokerTransformer

- All Implemented Interfaces:
    Serializable, Transformer

      public class InvokerTransformer
      extends Object
      implements Transformer, Serializable

  Transformer implementation that creates a new object instance by reflection.

  WARNING: from v3.2.2 onwards this class will throw an `UnsupportedOperationException` when trying to serialize or de-serialize an instance to prevent potential remote code execution exploits.

  In order to re-enable serialization support for `InvokerTransformer` the following system property can be used (via -Dproperty=true):

       org.apache.commons.collections.enableUnsafeSerialization

  Since:
    Commons Collections 3.0
  Version:
    $Revision: 1713845 $ $Date: 2015-11-11 15:02:16 +0100 (Wed, 11 Nov 2015) $
  Author:
    Stephen Colebourne
  See Also:
    Serialized Form

- - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Transformer` | `getInstance(String methodName)` Gets an instance of this transformer calling a specific method with no arguments.
    `static Transformer` | `getInstance(String methodName, Class[] paramTypes, Object[] args)` Gets an instance of this transformer calling a specific method with specific values.
    `Object` | `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 `getInstance` if you want that.
      Parameters:
        `methodName` - the method to call
        `paramTypes` - the constructor parameter types, not cloned
        `args` - the constructor arguments, not cloned

  - ### Method Detail

    - #### getInstance

          public static Transformer getInstance(String methodName)

      Gets an instance of this transformer calling a specific method with no arguments.
      Parameters:
        `methodName` - the method name to call
      Returns:
        an invoker transformer
      Since:
        Commons Collections 3.1

    - #### getInstance

          public static Transformer getInstance(String methodName,
                                Class[] paramTypes,
                                Object[] args)

      Gets an instance of this transformer calling a specific method with specific values.
      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

    - #### transform

          public Object transform(Object input)

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

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