| @gmf |
| @namespace(uri="esm", prefix="esm") |
| package esm; |
| |
| @gmf.diagram |
| class Machine { |
| val State[*] states; |
| val Transition[*] transitions; |
| } |
| |
| @gmf.node(figure="ellipse", label="name", label.placement="external", label.icon="false") |
| class State { |
| attr String[1] name; |
| ref Transition[*]#target incoming; |
| ref Transition[*]#source outgoing; |
| } |
| |
| @gmf.node(color="0,0,0", size="15,15") |
| class EndState extends State { |
|
|
| } |
| |
| @gmf.link(source="source", target="target", target.decoration="arrow", label="action") |
| class Transition { |
| attr String action; |
| val EObject actionImpl; |
| ref State[1]#outgoing source; |
| ref State[1]#incoming target; |
| } |
| |