@Override
    public String visit(final JmesPathFunction function,
                        final Void aVoid) throws InvalidTypeException {
        final String prefix = "new " + function.getClass()
                .getSimpleName() + "( ";
        return function.getExpressions().stream()
                .map(a -> a.accept(this, aVoid))
                .collect(Collectors.joining(",", prefix, ")"));
    }
@ Override public String visit ( final JmesPathFunction function , final Void aVoid ) throws InvalidTypeException { final String prefix = "new " + function . getClass ( ) . getSimpleName ( ) + "( " ; return function . getExpressions ( ) . stream ( ) . map ( a -> a . accept ( this , aVoid ) ) . collect ( Collectors . joining ( "," , prefix , ")" ) ) ; }
Generates the code for a new JmesPathFunction.

@param function JmesPath function type
@param aVoid    void
@return String that represents a call to
the new function expression
@throws InvalidTypeException