@Override public void visit(PathExpression expression) { List<PathElementExpression> pathProperties = expression.getExpressions(); int size = pathProperties.size(); if (size == 0) { return; } else if (size == 1) { pathProperties.get(0).accept(this); return; } pathProperties.get(0).accept(this); for (int i = 1; i < size; i++) { sb.append("."); pathProperties.get(i).accept(this); } }
@Override public PathExpression clone(boolean resolved) { if (resolved && pathReference != null) { PathExpression expression = (PathExpression) pathReference.getBaseNode().createExpression(pathReference.getField()); expression.usedInCollectionFunction = usedInCollectionFunction; expression.collectionKeyPath = collectionKeyPath; return expression; } int size = pathProperties.size(); List<PathElementExpression> newPathProperties = new ArrayList<PathElementExpression>(size); for (int i = 0; i < size; i++) { newPathProperties.add(pathProperties.get(i).clone(resolved)); } // NOTE: don't copy the path reference, it has to be set manually on the copy return new PathExpression(newPathProperties, null, usedInCollectionFunction, collectionKeyPath); }
@Override public PathExpression clone(boolean resolved) { if (resolved && pathReference != null) { PathExpression expression = (PathExpression) pathReference.getBaseNode().createExpression(pathReference.getField()); expression.usedInCollectionFunction = usedInCollectionFunction; expression.collectionKeyPath = collectionKeyPath; return expression; } int size = pathProperties.size(); List<PathElementExpression> newPathProperties = new ArrayList<PathElementExpression>(size); for (int i = 0; i < size; i++) { newPathProperties.add(pathProperties.get(i).clone(resolved)); } // NOTE: don't copy the path reference, it has to be set manually on the copy return new PathExpression(newPathProperties, null, usedInCollectionFunction, collectionKeyPath); }
@Override public void visit(PathExpression expression) { List<PathElementExpression> pathProperties = expression.getExpressions(); int size = pathProperties.size(); if (size == 0) { return; } else if (size == 1) { pathProperties.get(0).accept(this); return; } pathProperties.get(0).accept(this); for (int i = 1; i < size; i++) { sb.append("."); pathProperties.get(i).accept(this); } }
@Override public void visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { expressions.get(i).accept(this); } }
@Override public Expression visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { expressions.set(i, (PathElementExpression) expressions.get(i).accept(this)); } return expression; }
@Override public Expression visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { expressions.set(i, (PathElementExpression) expressions.get(i).accept(this)); } return expression; }
@Override public Boolean visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (expressions.get(i).accept(this)) { return true; } } return false; }
@Override public void visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { expressions.get(i).accept(this); } }
@Override public Boolean visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (expressions.get(i).accept(this)) { return true; } } return false; }
@Override public Expression visit(PathExpression expression) { for (int i = 0; i < expression.getExpressions().size(); i++) { expression.getExpressions().set(i, (PathElementExpression) expression.getExpressions().get(i).accept(this)); } return expression; }
@Override public Expression visit(PathExpression expression) { for (int i = 0; i < expression.getExpressions().size(); i++) { expression.getExpressions().set(i, (PathElementExpression) expression.getExpressions().get(i).accept(this)); } return expression; }
@Override public Boolean visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (Boolean.TRUE == expressions.get(i).accept(this)) { onModifier(new ExpressionListModifier(expressions, i)); } } return Boolean.FALSE; }
@Override public Boolean visit(PathExpression expression) { List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); for (int i = 0; i < size; i++) { if (Boolean.TRUE == expressions.get(i).accept(this)) { onModifier(new ExpressionListModifier(expressions, i)); } } return Boolean.FALSE; }
private String findCorrelatedAttribute(JoinNode correlationParent, List<PathElementExpression> pathElements, int start, int end, List<PathElementExpression> fields) { PathTargetResolvingExpressionVisitor pathResolvingVisitor = new PathTargetResolvingExpressionVisitor(metamodel, correlationParent.getNodeType(), correlationParent.getAlias()); for (int i = start; i < end; i++) { PathElementExpression expression = pathElements.get(i); expression.accept(pathResolvingVisitor); Attribute<?, ?> attribute = pathResolvingVisitor.getPossibleTargets().entrySet().iterator().next().getKey(); if (attribute != null) { if (mainQuery.jpaProvider.getJpaMetamodelAccessor().isJoinable(attribute)) { StringBuilder sb = new StringBuilder(); for (PathElementExpression field : fields) { sb.append(field.toString()); sb.append('.'); } sb.append(attribute.getName()); return sb.toString(); } else { fields.add(expression); } } } return null; }
for (int i = 1; i < size; i++) { sb.append("."); expressions.get(i).accept(this);
for (int i = 1; i < size; i++) { sb.append("."); expressions.get(i).accept(this);
@Override public void visit(PathExpression expression) { if (currentPosition.getCurrentType() == null) { currentPosition.setCurrentType(expression.getPathReference().getType()); return; } List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); int i = 0; // Skip the base node in (absolute) path expressions otherwise the resolving will fail if (size > 1) { PathElementExpression firstExpression = expressions.get(0); if (firstExpression instanceof PropertyExpression) { if (((PropertyExpression) firstExpression).getProperty().equals(skipBaseNodeAlias)) { i = 1; } } } for (; i < size; i++) { expressions.get(i).accept(this); } }
@Override public void visit(PathExpression expression) { if (currentPosition.getCurrentType() == null) { currentPosition.setCurrentType(expression.getPathReference().getType()); return; } List<PathElementExpression> expressions = expression.getExpressions(); int size = expressions.size(); int i = 0; // Skip the base node in (absolute) path expressions otherwise the resolving will fail if (size > 1) { PathElementExpression firstExpression = expressions.get(0); if (firstExpression instanceof PropertyExpression) { if (((PropertyExpression) firstExpression).getProperty().equals(skipBaseNodeAlias)) { i = 1; } } } for (; i < size; i++) { expressions.get(i).accept(this); } }