code:     public static <I, O> Transformer<I, O> invokerTransformer(final String methodName, final Class<?>[] paramTypes,
                                                                final Object[] args) {
          if (methodName == null) {
              throw new NullPointerException("The method to invoke must not be null");
          }
          if (((paramTypes == null) && (args != null))
              || ((paramTypes != null) && (args == null))
              || ((paramTypes != null) && (args != null) && (paramTypes.length != args.length))) {
              throw new IllegalArgumentException("The parameter types must match the arguments");
          }
          if (paramTypes == null || paramTypes.length == 0) {
              return new InvokerTransformer<I, O>(methodName);
          }
          return new InvokerTransformer<I, O>(methodName, paramTypes, args);
      }
  
      /**
       * Constructor for no arg instance.
       *
       * @param methodName  the method to call
       */
  