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

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