123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- include "primitives.alh"
- Diagram dynamic_trafficlight {
- name = "Dynamic Traffic Light"
- author = "Yentl Van Tendeloo"
- }
- Class manager {
- name = "Manager"
- default = True
- constructor_body = $
- Void function constructor(attributes : Element, parameters : Element):
- dict_add(attributes, "counter", 0)
- return !
- $
- {behaviour} CompositeState manager_root {
- name = "root"
- isInitial = True
- {composite_children} BasicState manager_root_start {
- name = "start"
- isInitial = True
- }
- }
- }
- transition (manager_root_start, manager_root_start) {
- name = "create"
- event = "create"
- {transition_raises} Raise {
- scope = "cd"
- event = "create_instance"
- parameter = $
- Element function raise(attributes : Element, parameters : Element):
- Element result
- result = create_node()
- list_append(result, "TrafficLight")
- list_append(result, attributes["counter"])
- list_append(result, read_root())
- dict_overwrite(attributes, "counter", integer_addition(attributes["counter"], 1))
- return result!
- $
- }
- }
- transition (manager_root_start, manager_root_start) {
- name = "delete"
- event = "delete"
- {transition_raises} Raise {
- scope = "cd"
- event = "delete_instance"
- parameter = $
- Element function raise(attributes : Element, parameters : Element):
- Element result
- result = create_node()
- list_append(result, parameters["id"])
- return result!
- $
- }
- }
|