@Override public void visit(ListIndexExpression expression) { sb.append("INDEX("); expression.getPath().accept(this); sb.append(')'); }
@Override public void visit(MapEntryExpression expression) { sb.append("ENTRY("); expression.getPath().accept(this); sb.append(')'); }
@Override public void visit(MapValueExpression expression) { sb.append("VALUE("); expression.getPath().accept(this); sb.append(')'); }
@Override public void visit(MapKeyExpression expression) { sb.append("KEY("); expression.getPath().accept(this); sb.append(')'); }
@Override public void visit(ListIndexExpression expression) { boolean oldInKey = inKey; inKey = true; try { expression.getPath().accept(this); } finally { inKey = oldInKey; } }
@Override public Expression visit(ListIndexExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Expression visit(MapEntryExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Expression visit(MapValueExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Expression visit(ListIndexExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Expression visit(MapEntryExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Expression visit(ListIndexExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Expression visit(MapEntryExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Expression visit(MapValueExpression expression) { expression.setPath((PathExpression) expression.getPath().accept(this)); return expression; }
@Override public Boolean visit(MapKeyExpression expression) { if (Boolean.TRUE == expression.getPath().accept(this)) { onModifier(new MapKeyExpressionModifier(expression)); } return Boolean.FALSE; }
@Override public Boolean visit(MapEntryExpression expression) { if (Boolean.TRUE == expression.getPath().accept(this)) { onModifier(new MapEntryExpressionModifier(expression)); } return Boolean.FALSE; }
@Override public Expression visit(ListIndexExpression expression) { Expression newExpression = expression.getPath().accept(this); if (newExpression != expression.getPath()) { return new ListIndexExpression((PathExpression) newExpression); } return expression; }
@Override public Expression visit(MapKeyExpression expression) { Expression newExpression = expression.getPath().accept(this); if (newExpression != expression.getPath()) { return new MapKeyExpression((PathExpression) newExpression); } return expression; }
@Override public Expression visit(MapKeyExpression expression) { Expression newExpression = expression.getPath().accept(this); if (newExpression != expression.getPath()) { return new MapKeyExpression((PathExpression) newExpression); } return expression; }
@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 void visit(ListIndexExpression expression) { expression.getPath().accept(this); Class<?> type = currentPosition.getRealCurrentClass(); if (!List.class.isAssignableFrom(type)) { invalid(expression, "Does not resolve to java.util.List!"); } else { currentPosition.setAttribute(new ListIndexAttribute<>((ListAttribute<?, ?>) currentPosition.getAttribute())); currentPosition.setValueType(null); currentPosition.setKeyType(metamodel.type(Integer.class)); } }