@Override public Expression get() { return target.getPath(); }
@Override public Expression visit(MapValueExpression expression) { Expression newExpression = expression.getPath().accept(this); if (newExpression != expression.getPath()) { return new MapValueExpression((PathExpression) newExpression); } return expression; }
@Override public MapValueExpression clone(boolean resolved) { return new MapValueExpression(path.clone(resolved)); }
@Override public void set(Expression expression) { target.setPath((PathExpression) expression); }
@Override public MapValueExpression clone(boolean resolved) { return new MapValueExpression(path.clone(resolved)); }
@Override public void set(Expression expression) { target.setPath((PathExpression) expression); }
@Override public Expression get() { return target.getPath(); }
@Override public Expression visit(MapValueExpression expression) { Expression newExpression = expression.getPath().accept(this); if (newExpression != expression.getPath()) { return new MapValueExpression((PathExpression) newExpression); } return expression; }
@Override public Expression visitKey_value_expression(JPQLSelectExpressionParser.Key_value_expressionContext ctx) { PathExpression collectionPath = (PathExpression) ctx.collection_valued_path_expression().accept(this); collectionPath.setCollectionKeyPath(true); if ("VALUE".equalsIgnoreCase(ctx.name.getText())) { return new MapValueExpression(collectionPath); } else { return new MapKeyExpression(collectionPath); } }
@Override public Expression visitKey_value_expression(JPQLSelectExpressionParser.Key_value_expressionContext ctx) { PathExpression collectionPath = (PathExpression) ctx.collection_valued_path_expression().accept(this); collectionPath.setCollectionKeyPath(true); if ("VALUE".equalsIgnoreCase(ctx.name.getText())) { return new MapValueExpression(collectionPath); } else { return new MapKeyExpression(collectionPath); } }
@Override public Expression visit(MapValueExpression expression) { if (expression == expressionToSplit) { Expression newExpression = expression.getPath().accept(this); if (newExpression != expression.getPath()) { // A split map value expression is not surrounded by the map value operator anymore return newExpression; } } else { return expression.getPath().accept(this); } return expression; }
@Override public void visit(MapValueExpression expression) { sb.append("VALUE("); expression.getPath().accept(this); sb.append(')'); }