| @namespace(uri="flowchart", prefix="flowchart") | |
| package flowchart; | |
| @gmf.diagram | |
| class Flowchart { | |
| val Node[*] nodes; | |
| val Transition[*] transitions; | |
| } | |
| @gmf.node(label="name", label.icon="false") | |
| abstract class Node { | |
| attr String name; | |
| ref Transition[*]#source outgoing; | |
| ref Transition[*]#target incoming; | |
| } | |
| @gmf.link(label="name", source="source", target="target", target.decoration="arrow") | |
| class Transition { | |
| attr String name; | |
| ref Node#outgoing source; | |
| ref Node#incoming target; | |
| } | |
| class Subflow extends Flowchart, Node{ | |
| } | |
| @gmf.node(figure= | |
| "org.eclipse.epsilon.eugenia.examples.flowchart.diagram.figures.SquareFigure") | |
| class Action extends Node { | |
| } | |
| @gmf.node(figure= | |
| "org.eclipse.epsilon.eugenia.examples.flowchart.diagram.figures.DiamondFigure") | |
| class Decision extends Node { | |
| } |