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 Details

    • 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 Details

    • 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