@Override public Expression get() { return target.getPath(); }
@Override public Expression get() { return target.getPath(); }
@Override public void visit(MapEntryExpression expression) { sb.append("ENTRY("); 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(MapEntryExpression expression) { expression.getPath().accept(this); }
@Override public void visit(MapEntryExpression expression) { expression.getPath().accept(this); }
@Override public Expression visit(MapEntryExpression 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(MapEntryExpression 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 Boolean visit(MapEntryExpression expression) { if (Boolean.TRUE == expression.getPath().accept(this)) { onModifier(new MapEntryExpressionModifier(expression)); } return Boolean.FALSE; }
@Override public Boolean visit(MapEntryExpression expression) { if (Boolean.TRUE == expression.getPath().accept(this)) { onModifier(new MapEntryExpressionModifier(expression)); } return Boolean.FALSE; }
private JoinNode joinMapEntry(MapEntryExpression mapEntryExpression, String alias, ClauseType fromClause, Set<String> currentlyResolvingAliases, boolean fromSubquery, boolean fromSelectAlias, boolean joinRequired, boolean fetch, boolean implicit, boolean defaultJoin) { implicitJoin(mapEntryExpression.getPath(), true, true, null, fromClause, null, currentlyResolvingAliases, fromSubquery, fromSelectAlias, joinRequired, false, fetch, false); JoinNode current = (JoinNode) mapEntryExpression.getPath().getBaseNode(); String joinRelationName = "ENTRY(" + current.getParentTreeNode().getRelationName() + ")"; MapAttribute<?, ?, ?> mapAttribute = (MapAttribute<?, ?, ?>) current.getParentTreeNode().getAttribute(); Attribute<?, ?> entryAttribute = new MapEntryAttribute<>(mapAttribute); String aliasToUse = alias == null ? current.getParentTreeNode().getRelationName().replaceAll("\\.", "_") + "_entry" : alias; Type<?> joinRelationType = metamodel.type(Map.Entry.class); current = getOrCreate(current, joinRelationName, joinRelationType, null, aliasToUse, JoinType.LEFT, "Ambiguous implicit join", implicit, true, entryAttribute); return current; }
@Override public void visit(MapEntryExpression expression) { expression.getPath().accept(this); if (!(currentPosition.getAttribute() instanceof MapAttribute<?, ?, ?>)) { invalid(expression, "Does not resolve to java.util.Map!"); } else { currentPosition.setAttribute(null); currentPosition.setCurrentType(metamodel.type(Map.Entry.class)); } }
@Override public void visit(MapEntryExpression expression) { expression.getPath().accept(this); currentPosition.setAttribute(new MapEntryAttribute<>((MapAttribute<?, Object, ?>) currentPosition.getAttribute())); currentPosition.setCurrentType(metamodel.type(Map.Entry.class)); }
@Override public void visit(MapEntryExpression expression) { expression.getPath().accept(this); currentPosition.setAttribute(new MapEntryAttribute<>((MapAttribute<?, Object, ?>) currentPosition.getAttribute())); currentPosition.setCurrentType(metamodel.type(Map.Entry.class)); }