@Override
  public Object evaluate(DeferredObject[] arguments) throws HiveException {
    evaluatedArguments.clear();
    for (int index = 0; index < arguments.length; ++index) {
      evaluatedArguments.add(converters[index].convert(arguments[index].get()));
    }
    return body.evaluate(evaluatedArguments);
  }
GenericUDFMacro wraps a user-defined macro expression into a GenericUDF
interface.
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFMacro.java