in asterix-graphix/src/main/java/org/apache/asterix/graphix/lang/rewrite/print/GraphixASTPrintVisitor.java [130:164]
public Void visit(PathPatternExpr pathPatternExpr, Integer step) throws CompilationException {
List<VertexPatternExpr> danglingVertices = pathPatternExpr.getVertexExpressions().stream().filter(v -> {
// Collect all vertices that are not attached to an edge.
for (EdgePatternExpr edgeExpression : pathPatternExpr.getEdgeExpressions()) {
VertexPatternExpr leftVertex = edgeExpression.getLeftVertex();
VertexPatternExpr rightVertex = edgeExpression.getRightVertex();
if (leftVertex == v || rightVertex == v) {
return false;
}
}
return true;
}).collect(Collectors.toList());
int index = 0;
for (VertexPatternExpr vertexPatternExpr : danglingVertices) {
if (index > 0) {
out.print(skip(step) + ",");
}
vertexPatternExpr.accept(this, step);
out.println();
index++;
}
for (EdgePatternExpr edgeExpression : pathPatternExpr.getEdgeExpressions()) {
if (index > 0) {
out.print(skip(step) + ",");
}
edgeExpression.accept(this, step);
out.println();
index++;
}
if (pathPatternExpr.getVariableExpr() != null) {
out.print(skip(step) + "AS ");
pathPatternExpr.getVariableExpr().accept(this, 0);
}
return null;
}