in asterix-graphix/src/main/java/org/apache/asterix/graphix/lang/rewrite/resolve/SchemaKnowledgeTable.java [153:174]
public boolean isValidEdge(EdgePatternExpr edgePatternExpr) {
for (ElementLabel leftLabel : edgePatternExpr.getLeftVertex().getLabels()) {
for (ElementLabel rightLabel : edgePatternExpr.getRightVertex().getLabels()) {
EdgeDescriptor edgeDescriptor = edgePatternExpr.getEdgeDescriptor();
for (ElementLabel edgeLabel : edgeDescriptor.getEdgeLabels()) {
if (edgeDescriptor.getEdgeDirection() != EdgeDescriptor.EdgeDirection.RIGHT_TO_LEFT) {
EdgeIdentifier id = new EdgeIdentifier(graphIdentifier, leftLabel, edgeLabel, rightLabel);
if (!edgeIdentifierSet.contains(id)) {
return false;
}
}
if (edgeDescriptor.getEdgeDirection() != EdgeDescriptor.EdgeDirection.LEFT_TO_RIGHT) {
EdgeIdentifier id = new EdgeIdentifier(graphIdentifier, rightLabel, edgeLabel, leftLabel);
if (!edgeIdentifierSet.contains(id)) {
return false;
}
}
}
}
}
return true;
}