class UpperExpression implements Expression {

    @Override
    public ExpressionResult apply(ExpressionContext context, ExpressionResult input) {
        ExpressionResult value = expression.apply(context, input);
        return (value == null || !value.isNonNull()) ? NullExpressionResult.INSTANCE :  new StringExpressionResult(value.toString().toUpperCase());
    }

    public  UpperExpression(String alias, Expression expression);

}