Interface SubTypeEdge

An edge has a direction (from --> to) and can be querried from both types (incomingEdge, outgoingEdge). Between the same from and to nodes, edges with different $relations are allowed, but not multiple edges with the same $relation (in the same direction).

Bidirectional relationships are represented by a single edge in the type graph, otherwise information stored along these edges must be duplicated and maintained. Edges don't contain explicit information, wether they are unidirectional or bidirectional, since it is semantically encoded in the $relation. Users of edges who know about the $relation also know, whether the corresponding edges are unidirectional or bidirectional. Graph algorithms also know, whether they work on unidirectional or on bidirectional edges.

Edges are realized as interfaces (and not as classes), since there are no methods to reuse or to override for customizations.

interface SubTypeEdge {
    $relation: "SubTypeEdge";
    cachingInformation: EdgeCachingInformation;
    error: undefined | SubTypeProblem;
    from: Type;
    to: Type;
}

Hierarchy (View Summary)

Properties

$relation: "SubTypeEdge"
cachingInformation: EdgeCachingInformation

The default value is 'LINK_EXISTS'. But edges might be used to explicitly indicate, that relationships are unclear or don't exist!

error: undefined | SubTypeProblem
from: Type
to: Type