Connector Type - modelint/flatland-model-diagram-editor GitHub Wiki

One or more Nodes may be interrelated by some model level relationship such as a state transition, generalization, association, dependency and so forth. Each such relationship is drawn with one or more connecting lines and terminating symbols. A Connector Type defines the symbols, line connection geometry and appearance of Connectors corresponding to some model level relationship.

Identifiers

  1. Name + Diagram type

The Name is unique for each Diagram Type by policy. It seems likely that a name like “Transition, for example, could be useful and defined differently across Diagram Types.

Attributes

Geometry

This describes the way that a Connector is drawn, pulling together all of its Stems. Many geometries are possible, but only a handful are supported which should cover a wide range of diagramming possibilities.

Unary – Relationship is rooted in some Node on one end and not connected on the other end. An initial transition on a state machine diagram is one example where the target state is connected and the other end of the transition just has a dark circle drawn at the other end (not a Node). It consists of a single Stem.

Binary – Relationship is drawn from one Node face position to another on the same or a different Node. This could be a state transition with a from and to state or a binary association from one class to another or a reflexive relationship starting and ending on the same class or state. It consists of two Stems, one attached to each Node face position connected together with a line. A Tertiary geometry where a third Stem connects a Node face to the binary connection is also possible in this geometry. It is considered an optional extension that can be defined on any Binary Connector.

Tree – Here one Node is a root connecting to two or more other Nodes. A Stem emanates from the root Node and another type of Stem emanates from each of the subsidiary Nodes and one or more lines are drawn to connect all the Stems. A class diagram generalization relationship is a typical case.

Type: Connection Geometry :: [ unary | binary | tree ]