public boolean isValidEdge()

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;
    }