@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 { | |
} |