/** * An expression that represents the result of a user provided function. * * @param <R> result type * @param <A> argument type * @param function the user provided function * @param argExpression expression for the function argument * @return a new expression */ public static <R, A> DesiredRateExpression<R> resultOf(final OneArgFunction<R, A> function, DesiredRateExpression<? extends A> argExpression) { return resultOf(function, argExpression, function.getClass().getSimpleName() + "(" + argExpression.getName() + ")"); }
/** * An expression that represents the result of a user provided function. * * @param <R> result type * @param <A1> first argument type * @param <A2> second argument type * @param function the user provided function * @param arg1Expression expression for the first argument * @param arg2Expression expression for the second argument * @return a new expression */ public static <R, A1, A2> DesiredRateExpression<R> resultOf(final TwoArgFunction<R, A1, A2> function, DesiredRateExpression<? extends A1> arg1Expression, DesiredRateExpression<? extends A2> arg2Expression) { return resultOf(function, arg1Expression, arg2Expression, function.getClass().getSimpleName() + "(" + arg1Expression.getName() + ", " + arg2Expression.getName() + ")"); }