cpee 2.0.17 → 2.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/wfadaptor.css +17 -0
  3. data/cockpit/js/instance.js +0 -1
  4. data/cockpit/js_libs.zip +0 -0
  5. data/cockpit/themes/model/rngs/call.rng +2 -1
  6. data/cockpit/themes/model/rngs/callmanipulate.rng +2 -1
  7. data/cockpit/themes/model/theme.js +1 -1
  8. data/cpee.gemspec +2 -2
  9. data/lib/cpee/controller.rb +6 -3
  10. data/lib/cpee/implementation.rb +23 -8
  11. data/lib/cpee/implementation_notifications.rb +1 -1
  12. data/lib/cpee/persistence.rb +2 -1
  13. data/lib/cpee/redis.rb +57 -0
  14. data/server/handlerwrappers/default.rb +15 -15
  15. data/server/routing/end.rb +16 -4
  16. data/server/routing/forward-events.rb +19 -7
  17. data/server/routing/forward-votes.rb +19 -7
  18. data/server/routing/persist.rb +27 -15
  19. data/tools/cpee +5 -5
  20. data/tools/test/README +4 -0
  21. data/tools/test/config.json +3 -0
  22. data/tools/test/contrib/graph_example.svg +1166 -0
  23. data/tools/test/contrib/legend.svg +817 -0
  24. data/tools/test/contrib/symbols.svg +224 -0
  25. data/tools/test/contrib/transformation1.xsl +264 -0
  26. data/tools/test/contrib/transformation2.xsl +10 -0
  27. data/tools/test/contrib/tree_example.svg +788 -0
  28. data/tools/test/css/model.css +24 -0
  29. data/tools/test/css/track.css +60 -0
  30. data/tools/test/css/ui.css +214 -0
  31. data/tools/test/css/wfadaptor.css +422 -0
  32. data/tools/test/edit.html +258 -0
  33. data/tools/test/graph.html +69 -0
  34. data/tools/test/index.html +258 -0
  35. data/tools/test/js/details.js +109 -0
  36. data/tools/test/js/instance.js +1344 -0
  37. data/tools/test/js/model.js +41 -0
  38. data/tools/test/js/parameters.js +82 -0
  39. data/tools/test/js/track.js +18 -0
  40. data/tools/test/js/ui.js +104 -0
  41. data/tools/test/js/wfadaptor.js +763 -0
  42. data/tools/test/js_libs.zip +0 -0
  43. data/tools/test/js_libs/Makefile +2 -0
  44. data/tools/test/js_libs/ansi_up.js +333 -0
  45. data/tools/test/js_libs/console.js +80 -0
  46. data/tools/test/js_libs/custommenu.css +84 -0
  47. data/tools/test/js_libs/custommenu.js +104 -0
  48. data/tools/test/js_libs/experiments1/relaxngui.css +185 -0
  49. data/tools/test/js_libs/experiments1/relaxngui.js +488 -0
  50. data/tools/test/js_libs/experiments1/rngtest9.html +60 -0
  51. data/tools/test/js_libs/experiments1/rngtest9.rng +35 -0
  52. data/tools/test/js_libs/experiments1/rngtest9.xml +8 -0
  53. data/tools/test/js_libs/jquery-2.2.4.min.js +4 -0
  54. data/tools/test/js_libs/jquery-3.2.1.min.js +4 -0
  55. data/tools/test/js_libs/jquery-3.3.1.min.js +2 -0
  56. data/tools/test/js_libs/jquery.browser.js +40 -0
  57. data/tools/test/js_libs/jquery.caret.min.js +10 -0
  58. data/tools/test/js_libs/jquery.cookie.js +117 -0
  59. data/tools/test/js_libs/jquery.min.js +1 -0
  60. data/tools/test/js_libs/jquery.svg.min.js +6 -0
  61. data/tools/test/js_libs/jquery.svgdom.min.js +6 -0
  62. data/tools/test/js_libs/markdown.min.js +1 -0
  63. data/tools/test/js_libs/parsequery.js +21 -0
  64. data/tools/test/js_libs/printf.js +368 -0
  65. data/tools/test/js_libs/relaxngui.css +213 -0
  66. data/tools/test/js_libs/relaxngui.js +543 -0
  67. data/tools/test/js_libs/strftime.min.js +1 -0
  68. data/tools/test/js_libs/tests/dataelements.html +59 -0
  69. data/tools/test/js_libs/tests/dataelements.rng +8 -0
  70. data/tools/test/js_libs/tests/dataelements.xml +3 -0
  71. data/tools/test/js_libs/tests/relaxngui.css +203 -0
  72. data/tools/test/js_libs/tests/relaxngui.js +502 -0
  73. data/tools/test/js_libs/tests/rngtest1.html +66 -0
  74. data/tools/test/js_libs/tests/rngtest1.rng +147 -0
  75. data/tools/test/js_libs/tests/rngtest1.xml +13 -0
  76. data/tools/test/js_libs/tests/rngtest2.html +60 -0
  77. data/tools/test/js_libs/tests/rngtest2.rng +6 -0
  78. data/tools/test/js_libs/tests/rngtest2.xml +3 -0
  79. data/tools/test/js_libs/tests/rngtest3.html +60 -0
  80. data/tools/test/js_libs/tests/rngtest3.rng +23 -0
  81. data/tools/test/js_libs/tests/rngtest3.xml +9 -0
  82. data/tools/test/js_libs/tests/rngtest4.html +60 -0
  83. data/tools/test/js_libs/tests/rngtest4.rng +19 -0
  84. data/tools/test/js_libs/tests/rngtest4.xml +12 -0
  85. data/tools/test/js_libs/tests/rngtest5.html +60 -0
  86. data/tools/test/js_libs/tests/rngtest5.rng +75 -0
  87. data/tools/test/js_libs/tests/rngtest5.xml +40 -0
  88. data/tools/test/js_libs/tests/rngtest6.html +60 -0
  89. data/tools/test/js_libs/tests/rngtest6.rng +24 -0
  90. data/tools/test/js_libs/tests/rngtest6.xml +6 -0
  91. data/tools/test/js_libs/tests/rngtest8.html +60 -0
  92. data/tools/test/js_libs/tests/rngtest8.rng +13 -0
  93. data/tools/test/js_libs/tests/rngtest8.xml +2 -0
  94. data/tools/test/js_libs/tests/rngtest9.html +60 -0
  95. data/tools/test/js_libs/tests/rngtest9.rng +31 -0
  96. data/tools/test/js_libs/tests/rngtest9.xml +8 -0
  97. data/tools/test/js_libs/ui.css +333 -0
  98. data/tools/test/js_libs/ui.html +168 -0
  99. data/tools/test/js_libs/ui.js +177 -0
  100. data/tools/test/js_libs/underscore.min.js +27 -0
  101. data/tools/test/js_libs/util.js +81 -0
  102. data/tools/test/js_libs/vkbeautify.0.99.00.beta.js +358 -0
  103. data/tools/test/js_libs/vkbeautify.js +1 -0
  104. data/tools/test/js_libs/webcomponents.min.js +196 -0
  105. data/tools/test/model.html +192 -0
  106. data/tools/test/rngs/attributes.rng +8 -0
  107. data/tools/test/rngs/dataelements.rng +8 -0
  108. data/tools/test/rngs/endpoints.rng +8 -0
  109. data/tools/test/templates.legacy/Async.xml +46 -0
  110. data/tools/test/templates.legacy/BCO.xml +70 -0
  111. data/tools/test/templates.legacy/BCS.xml +70 -0
  112. data/tools/test/templates.legacy/Centurio.xml +75 -0
  113. data/tools/test/templates.legacy/Concurrent.xml +40 -0
  114. data/tools/test/templates.legacy/Coopis Testset.xml +76 -0
  115. data/tools/test/templates.legacy/Endpoints and Data Manipulation.xml +30 -0
  116. data/tools/test/templates.legacy/ICSOC Testset.xml +95 -0
  117. data/tools/test/templates.legacy/Infinity.xml +28 -0
  118. data/tools/test/templates.legacy/Lego Boxer.xml +31 -0
  119. data/tools/test/templates.legacy/Lego Conveyor.xml +31 -0
  120. data/tools/test/templates.legacy/Lego Crane.xml +87 -0
  121. data/tools/test/templates.legacy/Lego Ejector.xml +55 -0
  122. data/tools/test/templates.legacy/Lego Full.xml +142 -0
  123. data/tools/test/templates.legacy/Lego Liddy.xml +40 -0
  124. data/tools/test/templates.legacy/Lego Plate.xml +31 -0
  125. data/tools/test/templates.legacy/Lego Transporter.xml +43 -0
  126. data/tools/test/templates.legacy/Lego_Part_1.xml +85 -0
  127. data/tools/test/templates.legacy/LgLinear.xml +65 -0
  128. data/tools/test/templates.legacy/Linear.xml +77 -0
  129. data/tools/test/templates.legacy/Log.xml +117 -0
  130. data/tools/test/templates.legacy/Mangler 1.xml +87 -0
  131. data/tools/test/templates.legacy/Mangler 2.xml +103 -0
  132. data/tools/test/templates.legacy/Manuel Labels.xml +55 -0
  133. data/tools/test/templates.legacy/Promise.xml +275 -0
  134. data/tools/test/templates.legacy/SOPROMO Test Sonification.xml +83 -0
  135. data/tools/test/templates.legacy/Subprocess.xml +56 -0
  136. data/tools/test/templates.legacy/Syncing P34 1.xml +77 -0
  137. data/tools/test/templates.legacy/Syncing P34 2.xml +77 -0
  138. data/tools/test/templates.legacy/Syncing P34 3.xml +77 -0
  139. data/tools/test/templates.legacy/Syncing P34.xml +77 -0
  140. data/tools/test/templates.legacy/TEST - Bad Loop.xml +173 -0
  141. data/tools/test/templates.legacy/TEST - Wrong Positions.xml +174 -0
  142. data/tools/test/templates.legacy/Take_5.xml +48 -0
  143. data/tools/test/templates.legacy/Update.xml +32 -0
  144. data/tools/test/templates.legacy/Worklist Parallel.xml +104 -0
  145. data/tools/test/templates.legacy/Worklist Test CPEE.xml +40 -0
  146. data/tools/test/templates.legacy/Worklist Test.xml +42 -0
  147. data/tools/test/templates.legacy/Worklist Test2.xml +43 -0
  148. data/tools/test/templates.legacy/convert_cpee2.rb +15 -0
  149. data/tools/test/templates.legacy/convert_preset.rb +32 -0
  150. data/tools/test/templates.legacy/testsets.xml +37 -0
  151. data/tools/test/templates.legacy/transformations.xml +4 -0
  152. data/tools/test/templates/Coopis 2010.xml +76 -0
  153. data/tools/test/templates/IUPC arXiv:1104.3609 P34 1.xml +77 -0
  154. data/tools/test/templates/IUPC arXiv:1104.3609 P34 2.xml +77 -0
  155. data/tools/test/templates/IUPC arXiv:1104.3609 P34 3.xml +77 -0
  156. data/tools/test/templates/Track Test Local.xml +82 -0
  157. data/tools/test/templates/Track Test.xml +82 -0
  158. data/tools/test/templates/UR-VUE 2020 Manual Adjust.xml +182 -0
  159. data/tools/test/templates/UR-VUE 2020 Solution Baseline.xml +203 -0
  160. data/tools/test/templates/UR-VUE 2020 Solution NN.xml +197 -0
  161. data/tools/test/templates/UR-VUE 2020 Solution View.xml +151 -0
  162. data/tools/test/templates/UR-VUE 2020.xml +26 -0
  163. data/tools/test/templates/Worklist.xml +42 -0
  164. data/tools/test/templates/instantiate.local/Take_Sub.xml +59 -0
  165. data/tools/test/templates/instantiate/Take_Perf.xml +46 -0
  166. data/tools/test/templates/instantiate/Take_Sub.xml +58 -0
  167. data/tools/test/templates/instantiate/Take_X.xml +48 -0
  168. data/tools/test/themes/compact/theme.js +1285 -0
  169. data/tools/test/themes/diana/theme.js +1650 -0
  170. data/tools/test/themes/extended/theme.js +1325 -0
  171. data/tools/test/themes/model/rngs/alternative.rng +1 -0
  172. data/tools/test/themes/model/rngs/call.rng +67 -0
  173. data/tools/test/themes/model/rngs/callmanipulate.rng +72 -0
  174. data/tools/test/themes/model/rngs/choose.rng +1 -0
  175. data/tools/test/themes/model/rngs/critical.rng +1 -0
  176. data/tools/test/themes/model/rngs/escape.rng +1 -0
  177. data/tools/test/themes/model/rngs/group.rng +1 -0
  178. data/tools/test/themes/model/rngs/loop.rng +1 -0
  179. data/tools/test/themes/model/rngs/manipulate.rng +1 -0
  180. data/tools/test/themes/model/rngs/otherwise.rng +1 -0
  181. data/tools/test/themes/model/rngs/parallel.rng +1 -0
  182. data/tools/test/themes/model/rngs/parallel_branch.rng +1 -0
  183. data/tools/test/themes/model/rngs/scripts.rng +7 -0
  184. data/tools/test/themes/model/rngs/stop.rng +1 -0
  185. data/tools/test/themes/model/rngs/terminate.rng +1 -0
  186. data/tools/test/themes/model/theme.js +1268 -0
  187. data/tools/test/themes/packed/theme.js +1286 -0
  188. data/tools/test/themes/preset/rngs/alternative.rng +25 -0
  189. data/tools/test/themes/preset/rngs/call.rng +122 -0
  190. data/tools/test/themes/preset/rngs/callmanipulate.rng +145 -0
  191. data/tools/test/themes/preset/rngs/choose.rng +14 -0
  192. data/tools/test/themes/preset/rngs/closed_loop.rng +62 -0
  193. data/tools/test/themes/preset/rngs/closed_loop_cancel.rng +5 -0
  194. data/tools/test/themes/preset/rngs/closed_loop_control.rng +31 -0
  195. data/tools/test/themes/preset/rngs/closed_loop_measuring.rng +12 -0
  196. data/tools/test/themes/preset/rngs/critical.rng +5 -0
  197. data/tools/test/themes/preset/rngs/escape.rng +1 -0
  198. data/tools/test/themes/preset/rngs/group.rng +3 -0
  199. data/tools/test/themes/preset/rngs/loop.rng +22 -0
  200. data/tools/test/themes/preset/rngs/manipulate.rng +9 -0
  201. data/tools/test/themes/preset/rngs/otherwise.rng +22 -0
  202. data/tools/test/themes/preset/rngs/parallel.rng +21 -0
  203. data/tools/test/themes/preset/rngs/parallel_branch.rng +8 -0
  204. data/tools/test/themes/preset/rngs/scripts.rng +23 -0
  205. data/tools/test/themes/preset/rngs/stop.rng +5 -0
  206. data/tools/test/themes/preset/rngs/terminate.rng +1 -0
  207. data/tools/test/themes/preset/symbols/alternative.svg +5 -0
  208. data/tools/test/themes/preset/symbols/arrow.svg +3 -0
  209. data/tools/test/themes/preset/symbols/call.svg +6 -0
  210. data/tools/test/themes/preset/symbols/callmanipulate.svg +8 -0
  211. data/tools/test/themes/preset/symbols/choose.svg +5 -0
  212. data/tools/test/themes/preset/symbols/choose_exclusive.svg +5 -0
  213. data/tools/test/themes/preset/symbols/choose_inclusive.svg +4 -0
  214. data/tools/test/themes/preset/symbols/closed_loop.svg +5 -0
  215. data/tools/test/themes/preset/symbols/closed_loop_cancel.svg +5 -0
  216. data/tools/test/themes/preset/symbols/closed_loop_control.svg +5 -0
  217. data/tools/test/themes/preset/symbols/closed_loop_measuring.svg +6 -0
  218. data/tools/test/themes/preset/symbols/complex.svg +8 -0
  219. data/tools/test/themes/preset/symbols/critical.svg +4 -0
  220. data/tools/test/themes/preset/symbols/end.svg +3 -0
  221. data/tools/test/themes/preset/symbols/escape.svg +5 -0
  222. data/tools/test/themes/preset/symbols/event_end.svg +3 -0
  223. data/tools/test/themes/preset/symbols/loop.svg +5 -0
  224. data/tools/test/themes/preset/symbols/manipulate.svg +4 -0
  225. data/tools/test/themes/preset/symbols/otherwise.svg +5 -0
  226. data/tools/test/themes/preset/symbols/parallel.svg +5 -0
  227. data/tools/test/themes/preset/symbols/parallel_branch.svg +5 -0
  228. data/tools/test/themes/preset/symbols/parallel_branch_compact.svg +4 -0
  229. data/tools/test/themes/preset/symbols/parallel_branch_event.svg +14 -0
  230. data/tools/test/themes/preset/symbols/parallel_branch_normal.svg +5 -0
  231. data/tools/test/themes/preset/symbols/scripts.svg +4 -0
  232. data/tools/test/themes/preset/symbols/start.svg +3 -0
  233. data/tools/test/themes/preset/symbols/stop.svg +5 -0
  234. data/tools/test/themes/preset/symbols/terminate.svg +4 -0
  235. data/tools/test/themes/preset/theme.js +1287 -0
  236. data/tools/test/track.html +142 -0
  237. metadata +221 -3
  238. data/cockpit/edit.html +0 -1
@@ -0,0 +1,224 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <defs>
3
+ <!--{{{--><style type="text/css"><![CDATA[
4
+ svg rect.injected {
5
+ fill: Highlight;
6
+ fill-opacity: 0.2;
7
+ }
8
+
9
+ svg path.ourline {
10
+ stroke-opacity: 0.9;
11
+ stroke:#000000;
12
+ stroke-width: 2;
13
+ fill: none;
14
+ }
15
+ svg rect.block {
16
+ stroke-width: 1;
17
+ stroke-dasharray: 3,5;
18
+ stroke: #000000;
19
+ fill: none;
20
+ }
21
+ svg circle.stand, svg rect.stand {
22
+ stroke:#000000;
23
+ stroke-width:2.06896567;
24
+ stroke-linecap:round;
25
+ stroke-linejoin:round;
26
+ stroke-miterlimit:4;
27
+ stroke-opacity:1;
28
+ stroke-dasharray:none;
29
+ }
30
+ svg text.normal {
31
+ font-size:20px;
32
+ font-style:normal;
33
+ font-variant:normal;
34
+ font-weight:bold;
35
+ font-stretch:normal;
36
+ text-align:center;
37
+ line-height:125%;
38
+ writing-mode:lr-tb;
39
+ text-anchor:middle;
40
+ color:#000000;
41
+ fill:#000000;
42
+ fill-opacity:1;
43
+ stroke:none;
44
+ font-family:Arial;
45
+ }
46
+
47
+ svg text.super {
48
+ font-size:11px;
49
+ font-style:normal;
50
+ font-variant:normal;
51
+ font-weight:bold;
52
+ font-stretch:normal;
53
+ text-align:center;
54
+ line-height:100%;
55
+ writing-mode:lr-tb;
56
+ text-anchor:left;
57
+ color:#000000;
58
+ fill:#000000;
59
+ fill-opacity:1;
60
+ stroke:none;
61
+ font-family:Arial;
62
+ }
63
+ svg tspan.active {
64
+ fill:#ff0000;
65
+ display: none;
66
+ }
67
+ svg tspan.vote {
68
+ fill:#73d216;
69
+ display: none;
70
+ }
71
+ svg tspan.colon {
72
+ display: none;
73
+ }
74
+ svg tspan.necessary {
75
+ display: inline;
76
+ }
77
+
78
+ svg text.normallarge {
79
+ font-size:25px;
80
+ font-style:normal;
81
+ font-variant:normal;
82
+ font-weight:bold;
83
+ font-stretch:normal;
84
+ text-align:center;
85
+ line-height:125%;
86
+ writing-mode:lr-tb;
87
+ text-anchor:middle;
88
+ color:#000000;
89
+ fill:#000000;
90
+ fill-opacity:1;
91
+ stroke:none;
92
+ font-family:Arial;
93
+ }
94
+ svg text.small {
95
+ font-size:14px;
96
+ font-style:normal;
97
+ font-variant:normal;
98
+ font-weight:bold;
99
+ font-stretch:normal;
100
+ text-align:center;
101
+ line-height:125%;
102
+ writing-mode:lr-tb;
103
+ text-anchor:middle;
104
+ color:#000000;
105
+ fill:#000000;
106
+ fill-opacity:1;
107
+ stroke:none;
108
+ font-family:Arial;
109
+ }
110
+
111
+ #arrow {
112
+ stroke: #000000;
113
+ stroke-width: 2;
114
+ fill: #000000;
115
+ }
116
+ ]]></style><!--}}}-->
117
+ <symbol id="activity" class="clickable"><!-- {{{ -->
118
+ <rect x="1" y="1" width="28" height="28" class="stand"/>
119
+ </symbol><!-- }}} -->
120
+ <symbol id="activitymanipulate" class="clickable"><!-- {{{ -->
121
+ <rect x="1" y="1" width="28" height="28" class="stand"/>
122
+ <circle cx="28" cy="28" r="9" class="stand"/>
123
+ <text class="small" transform="translate(28, 32)">m</text>
124
+ </symbol><!-- }}} -->
125
+ <symbol id="call" class="clickable"><!-- {{{ -->
126
+ <circle cx="15" cy="15" r="14" class="stand"/>
127
+ <text class="normal" transform="translate(15, 21)">c</text>
128
+ </symbol><!-- }}} -->
129
+ <symbol id="manipulate" class="clickable"><!-- {{{ -->
130
+ <circle cx="15" cy="15" r="14" class="stand"/>
131
+ <text class="normal" transform="translate(15, 21)">m</text>
132
+ </symbol><!-- }}} -->
133
+ <symbol id="callmanipulate" class="clickable"><!-- {{{ -->
134
+ <circle cx="15" cy="15" r="14" class="stand"/>
135
+ <text class="normal" transform="translate(15, 21)">c</text>
136
+ <circle cx="28" cy="28" r="9" class="stand"/>
137
+ <text class="small" transform="translate(28, 32)">m</text>
138
+ </symbol><!-- }}} -->
139
+ <symbol id="choose" class="clickable"><!-- {{{ -->
140
+ <circle cx="15" cy="15" r="14" class="stand"/>
141
+ <text class="normal" transform="translate(15, 21)">σ</text>
142
+ </symbol><!-- }}} -->
143
+ <symbol id="alternative" class="clickable"><!-- {{{ -->
144
+ <circle cx="15" cy="15" r="14" class="standwithout"/>
145
+ <text class="normal" transform="translate(15, 20)">{..}</text>
146
+ </symbol><!-- }}} -->
147
+ <symbol id="otherwise" class="clickable"><!-- {{{ -->
148
+ <circle cx="15" cy="15" r="14" class="standwithout"/>
149
+ <text class="normal" transform="translate(15, 20)">{⁎}</text>
150
+ </symbol><!-- }}} -->
151
+ <symbol id="parallel" class="clickable"><!-- {{{ -->
152
+ <circle cx="15" cy="15" r="14" class="stand"/>
153
+ <text class="normal" transform="translate(15, 21)">||</text>
154
+ </symbol><!-- }}} -->
155
+ <symbol id="parallel_branch" class="clickable"><!-- {{{ -->
156
+ <circle cx="15" cy="15" r="14" class="stand"/>
157
+ <text class="normal" transform="translate(15, 21)">|</text>
158
+ </symbol><!-- }}} -->
159
+ <symbol id="critical" class="clickable"><!-- {{{ -->
160
+ <circle cx="15" cy="15" r="14" class="stand"/>
161
+ <text class="normal" transform="translate(15, 21)">⚠</text>
162
+ </symbol><!-- }}} -->
163
+ <symbol id="loop" class="clickable"><!-- {{{ -->
164
+ <circle cx="15" cy="15" r="14" class="stand"/>
165
+ <text class="normallarge" transform="translate(15, 24)">↺</text>
166
+ </symbol><!-- }}} -->
167
+ <symbol id="end"><!-- {{{ -->
168
+ <circle cx="15" cy="15" r="14" class="stand"/>
169
+ <circle cx="15" cy="15" r="11" class="stand"/>
170
+ <text class="normal" transform="translate(15, 21)">Ω</text>
171
+ </symbol><!-- }}} -->
172
+ <marker id="arrow" viewBox="0 0 10 10" refX="24" refY="5" orient="auto" markerUnits="strokeWidth" markerWidth="4.5" markerHeight="4.5">
173
+ <path d="m 2 2 l 6 3 l -6 3 z"/>
174
+ </marker>
175
+ </defs>
176
+
177
+ <g id="canvas">
178
+ <g transform="translate(0, 0)">
179
+ <text class="super" transform="translate(28.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
180
+ <use xlink:href="#call" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
181
+ <title>a1</title>
182
+ </use>
183
+ </g>
184
+ <g transform="translate(45, 0)">
185
+ <text class="super" transform="translate(28.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
186
+ <use xlink:href="#manipulate" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
187
+ <title>a2</title>
188
+ </use>
189
+ </g>
190
+ <g transform="translate(90, 0)">
191
+ <text class="super" transform="translate(28.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
192
+ <use xlink:href="#callmanipulate" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
193
+ <title>a3</title>
194
+ </use>
195
+ </g>
196
+
197
+ <g transform="translate(0, 40)">
198
+ <text class="super" transform="translate(31.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
199
+ <use xlink:href="#activity" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
200
+ <title>a</title>
201
+ </use>
202
+ <text class="normal" transform="translate(15, 21)">a</text>
203
+ </g>
204
+ <g transform="translate(50, 40)">
205
+ <text class="super" transform="translate(31.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
206
+ <use xlink:href="#activitymanipulate" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
207
+ <title>b</title>
208
+ </use>
209
+ <text class="normal" transform="translate(15, 21)">b</text>
210
+ </g>
211
+
212
+
213
+ <use xlink:href="#choose" transform="translate(0,80)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
214
+ <use xlink:href="#alternative" transform="translate(40,80)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
215
+ <use xlink:href="#otherwise" transform="translate(80,80)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
216
+ <use xlink:href="#parallel" transform="translate(0,120)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
217
+ <use xlink:href="#parallel_branch" transform="translate(40,120)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
218
+ <use xlink:href="#critical" transform="translate(0,160)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
219
+ <use xlink:href="#loop" transform="translate(0,200)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
220
+ <use xlink:href="#end" transform="translate(0,240)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
221
+
222
+ <line x1="5" y1="280" x2="100" y2="320" stroke="black" stroke-width="3" marker-end="url(#arrow)"/>
223
+ </g>
224
+ </svg>
@@ -0,0 +1,264 @@
1
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://cpee.org/ns/description/1.0">
2
+ <xsl:output method="text"/>
3
+ <xsl:strip-space elements="*"/>
4
+ <xsl:variable name="myspacemultiplier">2</xsl:variable>
5
+
6
+ <xsl:template match="/">
7
+ <xsl:apply-templates select="//d:description"/>
8
+ </xsl:template>
9
+
10
+ <xsl:template match="//d:description">
11
+ <xsl:apply-templates>
12
+ <xsl:with-param name="myspace"><xsl:value-of select="-1*$myspacemultiplier"/></xsl:with-param>
13
+ </xsl:apply-templates>
14
+ </xsl:template>
15
+
16
+ <xsl:template match="*">
17
+ <xsl:param name="myspace"/>
18
+ <xsl:call-template name="print-space">
19
+ <xsl:with-param name="i">1</xsl:with-param>
20
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
21
+ </xsl:call-template>
22
+ <xsl:if test="name()='call' or name()='manipulate'">
23
+ <xsl:choose>
24
+ <xsl:when test="@lay">
25
+ <xsl:text>activity [:</xsl:text>
26
+ <xsl:value-of select="@id"/>
27
+ <xsl:text>,</xsl:text>
28
+ <xsl:value-of select="@lay"/>
29
+ <xsl:text>]</xsl:text>
30
+ </xsl:when>
31
+ <xsl:otherwise>
32
+ <xsl:text>activity :</xsl:text>
33
+ <xsl:value-of select="@id"/>
34
+ </xsl:otherwise>
35
+ </xsl:choose>
36
+ </xsl:if>
37
+ <xsl:if test="name()='call'">
38
+ <xsl:text>, :call, :</xsl:text>
39
+ <xsl:value-of select="@endpoint"/>
40
+ <xsl:apply-templates select="d:parameters"/>
41
+ <xsl:apply-templates select="d:manipulate" mode="part-of-call">
42
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
43
+ </xsl:apply-templates>
44
+ <xsl:call-template name="print-newline"/>
45
+ </xsl:if>
46
+ <xsl:if test="name()='manipulate'">
47
+ <xsl:text>, :manipulate</xsl:text>
48
+ <xsl:call-template name="print-content">
49
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
50
+ </xsl:call-template>
51
+ <xsl:call-template name="print-newline"/>
52
+ </xsl:if>
53
+ <xsl:if test="name()='parallel'">
54
+ <xsl:text>parallel</xsl:text>
55
+ <xsl:if test="@wait">
56
+ <xsl:text> :wait => </xsl:text>
57
+ <xsl:value-of select="@wait"/>
58
+ </xsl:if>
59
+ <xsl:text> do</xsl:text>
60
+ <xsl:call-template name="print-newline"/>
61
+ <xsl:apply-templates>
62
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
63
+ </xsl:apply-templates>
64
+ <xsl:call-template name="print-space">
65
+ <xsl:with-param name="i">1</xsl:with-param>
66
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
67
+ </xsl:call-template>
68
+ <xsl:text>end</xsl:text>
69
+ <xsl:call-template name="print-newline"/>
70
+ </xsl:if>
71
+ <xsl:if test="name()='loop'">
72
+ <xsl:text>loop </xsl:text>
73
+ <xsl:if test="@pre_test">
74
+ <xsl:text>pre_test{</xsl:text>
75
+ <xsl:value-of select="@pre_test"/>
76
+ <xsl:text>} </xsl:text>
77
+ </xsl:if>
78
+ <xsl:if test="@post_test">
79
+ <xsl:text>post_test{</xsl:text>
80
+ <xsl:value-of select="@post_test"/>
81
+ <xsl:text>} </xsl:text>
82
+ </xsl:if>
83
+ <xsl:text>do</xsl:text>
84
+ <xsl:call-template name="print-newline"/>
85
+ <xsl:apply-templates>
86
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
87
+ </xsl:apply-templates>
88
+ <xsl:call-template name="print-space">
89
+ <xsl:with-param name="i">1</xsl:with-param>
90
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
91
+ </xsl:call-template>
92
+ <xsl:text>end</xsl:text>
93
+ <xsl:call-template name="print-newline"/>
94
+ </xsl:if>
95
+ <xsl:if test="name()='choose'">
96
+ <xsl:text>choose do</xsl:text>
97
+ <xsl:call-template name="print-newline"/>
98
+ <xsl:apply-templates>
99
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
100
+ </xsl:apply-templates>
101
+ <xsl:call-template name="print-space">
102
+ <xsl:with-param name="i">1</xsl:with-param>
103
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
104
+ </xsl:call-template>
105
+ <xsl:text>end</xsl:text>
106
+ <xsl:call-template name="print-newline"/>
107
+ </xsl:if>
108
+ </xsl:template>
109
+
110
+ <xsl:template match="d:alternative">
111
+ <xsl:param name="myspace"/>
112
+ <xsl:call-template name="print-space">
113
+ <xsl:with-param name="i">1</xsl:with-param>
114
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
115
+ </xsl:call-template>
116
+ <xsl:text>alternative </xsl:text>
117
+ <xsl:value-of select="@condition"/>
118
+ <xsl:text> do</xsl:text>
119
+ <xsl:call-template name="print-newline"/>
120
+ <xsl:apply-templates>
121
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
122
+ </xsl:apply-templates>
123
+ <xsl:call-template name="print-space">
124
+ <xsl:with-param name="i">1</xsl:with-param>
125
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
126
+ </xsl:call-template>
127
+ <xsl:text>end</xsl:text>
128
+ <xsl:call-template name="print-newline"/>
129
+ </xsl:template>
130
+
131
+ <xsl:template match="d:otherwise">
132
+ <xsl:param name="myspace"/>
133
+ <xsl:call-template name="print-space">
134
+ <xsl:with-param name="i">1</xsl:with-param>
135
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
136
+ </xsl:call-template>
137
+ <xsl:text>otherwise do</xsl:text>
138
+ <xsl:call-template name="print-newline"/>
139
+ <xsl:apply-templates>
140
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
141
+ </xsl:apply-templates>
142
+ <xsl:call-template name="print-space">
143
+ <xsl:with-param name="i">1</xsl:with-param>
144
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
145
+ </xsl:call-template>
146
+ <xsl:text>end</xsl:text>
147
+ <xsl:call-template name="print-newline"/>
148
+ </xsl:template>
149
+
150
+ <xsl:template match="d:parallel_branch">
151
+ <xsl:param name="myspace"/>
152
+ <xsl:call-template name="print-space">
153
+ <xsl:with-param name="i">1</xsl:with-param>
154
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
155
+ </xsl:call-template>
156
+ <xsl:text>parallel_branch</xsl:text>
157
+ <xsl:if test="@pass">
158
+ <xsl:text> </xsl:text>
159
+ <xsl:value-of select="@pass"/>
160
+ </xsl:if>
161
+ <xsl:text> do</xsl:text>
162
+ <xsl:if test="@local">
163
+ <xsl:text> |</xsl:text>
164
+ <xsl:value-of select="@local"/>
165
+ <xsl:text>|</xsl:text>
166
+ </xsl:if>
167
+ <xsl:call-template name="print-newline"/>
168
+ <xsl:apply-templates>
169
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
170
+ </xsl:apply-templates>
171
+ <xsl:call-template name="print-space">
172
+ <xsl:with-param name="i">1</xsl:with-param>
173
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
174
+ </xsl:call-template>
175
+ <xsl:text>end</xsl:text>
176
+ <xsl:call-template name="print-newline"/>
177
+ </xsl:template>
178
+
179
+ <xsl:template match="d:parameters">
180
+ <xsl:apply-templates select="d:*" mode="parameter"/>
181
+ </xsl:template>
182
+
183
+ <xsl:template match="d:*" mode="parameter">
184
+ <xsl:text>, :</xsl:text>
185
+ <xsl:value-of select="name()"/>
186
+ <xsl:text> => </xsl:text>
187
+ <xsl:choose>
188
+ <xsl:when test="count(*) > 0">
189
+ <xsl:text>[</xsl:text>
190
+ <xsl:apply-templates select="d:*" mode="sub-parameter"/>
191
+ <xsl:text>]</xsl:text>
192
+ </xsl:when>
193
+ <xsl:otherwise>
194
+ <xsl:text>"</xsl:text>
195
+ <xsl:value-of select="text()"/>
196
+ <xsl:text>"</xsl:text>
197
+ </xsl:otherwise>
198
+ </xsl:choose>
199
+ </xsl:template>
200
+
201
+ <xsl:template match="d:*" mode="sub-parameter">
202
+ <xsl:text> { :</xsl:text>
203
+ <xsl:value-of select="name()"/>
204
+ <xsl:text> => </xsl:text>
205
+ <xsl:value-of select="text()"/>
206
+ <xsl:text> }</xsl:text>
207
+ <xsl:choose>
208
+ <xsl:when test=". = ../*[last()]">
209
+ <xsl:text> </xsl:text>
210
+ </xsl:when>
211
+ <xsl:otherwise>
212
+ <xsl:text>,</xsl:text>
213
+ </xsl:otherwise>
214
+ </xsl:choose>
215
+ </xsl:template>
216
+
217
+ <xsl:template match="d:manipulate" mode="part-of-call">
218
+ <xsl:param name="myspace"/>
219
+ <xsl:call-template name="print-content">
220
+ <xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
221
+ </xsl:call-template>
222
+ </xsl:template>
223
+
224
+ <xsl:template name="print-content">
225
+ <xsl:param name="myspace"/>
226
+ <xsl:if test="text()">
227
+ <xsl:text> do </xsl:text>
228
+ <xsl:if test="@output">
229
+ <xsl:text>|</xsl:text>
230
+ <xsl:value-of select="@output"/>
231
+ <xsl:text>|</xsl:text>
232
+ </xsl:if>
233
+ <xsl:call-template name="print-newline"/>
234
+ <xsl:value-of select="text()"/>
235
+ <xsl:call-template name="print-newline"/>
236
+ <xsl:call-template name="print-space">
237
+ <xsl:with-param name="i">1</xsl:with-param>
238
+ <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
239
+ </xsl:call-template>
240
+ <xsl:text>end</xsl:text>
241
+ </xsl:if>
242
+ </xsl:template>
243
+
244
+ <xsl:template name="print-space">
245
+ <xsl:param name="i"/>
246
+ <xsl:param name="count"/>
247
+ <xsl:if test="$i &lt;= $count">
248
+ <xsl:text> </xsl:text>
249
+ <xsl:call-template name="print-space">
250
+ <xsl:with-param name="i">
251
+ <xsl:value-of select="$i + 1"/>
252
+ </xsl:with-param>
253
+ <xsl:with-param name="count">
254
+ <xsl:value-of select="$count"/>
255
+ </xsl:with-param>
256
+ </xsl:call-template>
257
+ </xsl:if>
258
+ </xsl:template>
259
+ <xsl:template name="print-newline">
260
+ <xsl:text>
261
+ </xsl:text>
262
+ </xsl:template>
263
+
264
+ </xsl:stylesheet>