@Override public int hashCode() { int h = 31; h = h * 17 + function.hashCode(); h = h * 17 + args.hashCode(); return h; }
@Override public String toString() { return function.getName() + "(" + Joiner.on(", ").join(Iterables.transform(args, Functions.toStringFunction())) + ")"; }
private boolean equalTo(FunctionExpression other) { return function.getClass().equals(other.function.getClass()) && args.equals(other.args); }
@Override public Set<QueryTarget> eval(QueryEnvironment env, ListeningExecutorService executor) throws QueryException, InterruptedException { return function.eval(env, args, executor); }