sccd.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?xml version="1.1" ?>
  2. <diagram author="Sam Pieters" name="DisassociateMultipleInstances">
  3. <description>
  4. Disassociate multiple instances
  5. </description>
  6. <outport name="Outport"/>
  7. <class name="MainApp" default="true">
  8. <relationships>
  9. <association name="linkA" class="A" />
  10. </relationships>
  11. <constructor>
  12. <body>
  13. self.association_name = None
  14. </body>
  15. </constructor>
  16. <scxml initial="state1">
  17. <state id="state1">
  18. <onentry>
  19. <raise scope="cd" event="create_instance">
  20. <parameter expr='"linkA"' />
  21. <parameter expr='"A"' />
  22. </raise>
  23. </onentry>
  24. <transition event='instance_created' target='../state2'>
  25. <parameter name="association_name" type="string"/>
  26. <script>
  27. self.association_name = association_name
  28. </script>
  29. <raise port="Outport" event="instance_created_succesfully">
  30. <parameter expr="association_name" />
  31. </raise>
  32. <raise scope="cd" event="start_instance">
  33. <parameter expr="association_name" />
  34. </raise>
  35. </transition>
  36. </state>
  37. <state id="state2">
  38. <onentry>
  39. <raise scope="cd" event="create_instance">
  40. <parameter expr='"linkA"' />
  41. <parameter expr='"A"' />
  42. </raise>
  43. </onentry>
  44. <transition event='instance_created' target='../state3'>
  45. <parameter name="association_name" type="string"/>
  46. <script>
  47. self.association_name = association_name
  48. </script>
  49. <raise port="Outport" event="instance_created_succesfully">
  50. <parameter expr="association_name" />
  51. </raise>
  52. <raise scope="cd" event="start_instance">
  53. <parameter expr="association_name" />
  54. </raise>
  55. </transition>
  56. </state>
  57. <state id="state3">
  58. <transition event='instance_started' target='../state4'>
  59. <parameter name="association_name" type="string"/>
  60. <raise port="Outport" event="instance_started_succesfully">
  61. <parameter expr="association_name" />
  62. </raise>
  63. <raise scope="narrow" event="link_check" target="association_name">
  64. <parameter expr="association_name" />
  65. </raise>
  66. </transition>
  67. </state>
  68. <state id="state4">
  69. <onentry>
  70. <raise scope="cd" event='disassociate_instance'>
  71. <parameter expr='"linkA"' />
  72. </raise>
  73. </onentry>
  74. <transition event='instance_disassociated' target='../state5'>
  75. <parameter name='deleted_links' />
  76. <raise port="Outport" event="instance_disassociated_succesfully">
  77. <parameter expr="deleted_links" />
  78. </raise>
  79. </transition>
  80. </state>
  81. <state id="state5">
  82. <onentry>
  83. <raise scope="narrow" event="sanity_check" target="self.association_name" />
  84. </onentry>
  85. </state>
  86. </scxml>
  87. </class>
  88. <class name="A">
  89. <scxml initial="state1">
  90. <state id="state1">
  91. <onentry>
  92. <raise port="Outport" event="statechart_started_succesfully" />
  93. </onentry>
  94. <transition target="../state2" />
  95. </state>
  96. <state id="state2">
  97. <transition event="link_check" target=".">
  98. <parameter name='link_name' />
  99. <raise port="Outport" event="instance_linked_succesfully">
  100. <parameter expr="link_name" />
  101. </raise>
  102. </transition>
  103. <transition event="sanity_check" target=".">
  104. <raise port="Outport" event="not_possible" />
  105. </transition>
  106. </state>
  107. </scxml>
  108. </class>
  109. </diagram>