@namespace(uri="flowchart", prefix="flowchart") | |
package flowchart; | |
abstract class NamedElement { | |
attr String[1] name; | |
} | |
class Flowchart extends NamedElement { | |
val Node[*] nodes; | |
val Transition[*] transitions; | |
} | |
abstract class Node extends NamedElement { | |
ref Transition[*]#source outgoing; | |
ref Transition[*]#target incoming; | |
} | |
class Transition extends NamedElement { | |
ref Node[1]#outgoing source; | |
ref Node[1]#incoming target; | |
} | |
class Action extends Node { | |
} | |
class Decision extends Node { | |
} | |
class Subflow extends Flowchart, Node { | |
} |