cpee 2.0.19 → 2.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) 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/routing/end.rb +16 -4
  15. data/server/routing/forward-events.rb +19 -7
  16. data/server/routing/forward-votes.rb +19 -7
  17. data/server/routing/persist.rb +26 -14
  18. data/tools/cpee +5 -5
  19. data/tools/test/README +4 -0
  20. data/tools/test/config.json +3 -0
  21. data/tools/test/contrib/graph_example.svg +1166 -0
  22. data/tools/test/contrib/legend.svg +817 -0
  23. data/tools/test/contrib/symbols.svg +224 -0
  24. data/tools/test/contrib/transformation1.xsl +264 -0
  25. data/tools/test/contrib/transformation2.xsl +10 -0
  26. data/tools/test/contrib/tree_example.svg +788 -0
  27. data/tools/test/css/model.css +24 -0
  28. data/tools/test/css/track.css +60 -0
  29. data/tools/test/css/ui.css +214 -0
  30. data/tools/test/css/wfadaptor.css +422 -0
  31. data/tools/test/edit.html +258 -0
  32. data/tools/test/graph.html +69 -0
  33. data/tools/test/index.html +258 -0
  34. data/tools/test/js/details.js +109 -0
  35. data/tools/test/js/instance.js +1344 -0
  36. data/tools/test/js/model.js +41 -0
  37. data/tools/test/js/parameters.js +82 -0
  38. data/tools/test/js/track.js +18 -0
  39. data/tools/test/js/ui.js +104 -0
  40. data/tools/test/js/wfadaptor.js +763 -0
  41. data/tools/test/js_libs.zip +0 -0
  42. data/tools/test/js_libs/Makefile +2 -0
  43. data/tools/test/js_libs/ansi_up.js +333 -0
  44. data/tools/test/js_libs/console.js +80 -0
  45. data/tools/test/js_libs/custommenu.css +84 -0
  46. data/tools/test/js_libs/custommenu.js +104 -0
  47. data/tools/test/js_libs/experiments1/relaxngui.css +185 -0
  48. data/tools/test/js_libs/experiments1/relaxngui.js +488 -0
  49. data/tools/test/js_libs/experiments1/rngtest9.html +60 -0
  50. data/tools/test/js_libs/experiments1/rngtest9.rng +35 -0
  51. data/tools/test/js_libs/experiments1/rngtest9.xml +8 -0
  52. data/tools/test/js_libs/jquery-2.2.4.min.js +4 -0
  53. data/tools/test/js_libs/jquery-3.2.1.min.js +4 -0
  54. data/tools/test/js_libs/jquery-3.3.1.min.js +2 -0
  55. data/tools/test/js_libs/jquery.browser.js +40 -0
  56. data/tools/test/js_libs/jquery.caret.min.js +10 -0
  57. data/tools/test/js_libs/jquery.cookie.js +117 -0
  58. data/tools/test/js_libs/jquery.min.js +1 -0
  59. data/tools/test/js_libs/jquery.svg.min.js +6 -0
  60. data/tools/test/js_libs/jquery.svgdom.min.js +6 -0
  61. data/tools/test/js_libs/markdown.min.js +1 -0
  62. data/tools/test/js_libs/parsequery.js +21 -0
  63. data/tools/test/js_libs/printf.js +368 -0
  64. data/tools/test/js_libs/relaxngui.css +213 -0
  65. data/tools/test/js_libs/relaxngui.js +543 -0
  66. data/tools/test/js_libs/strftime.min.js +1 -0
  67. data/tools/test/js_libs/tests/dataelements.html +59 -0
  68. data/tools/test/js_libs/tests/dataelements.rng +8 -0
  69. data/tools/test/js_libs/tests/dataelements.xml +3 -0
  70. data/tools/test/js_libs/tests/relaxngui.css +203 -0
  71. data/tools/test/js_libs/tests/relaxngui.js +502 -0
  72. data/tools/test/js_libs/tests/rngtest1.html +66 -0
  73. data/tools/test/js_libs/tests/rngtest1.rng +147 -0
  74. data/tools/test/js_libs/tests/rngtest1.xml +13 -0
  75. data/tools/test/js_libs/tests/rngtest2.html +60 -0
  76. data/tools/test/js_libs/tests/rngtest2.rng +6 -0
  77. data/tools/test/js_libs/tests/rngtest2.xml +3 -0
  78. data/tools/test/js_libs/tests/rngtest3.html +60 -0
  79. data/tools/test/js_libs/tests/rngtest3.rng +23 -0
  80. data/tools/test/js_libs/tests/rngtest3.xml +9 -0
  81. data/tools/test/js_libs/tests/rngtest4.html +60 -0
  82. data/tools/test/js_libs/tests/rngtest4.rng +19 -0
  83. data/tools/test/js_libs/tests/rngtest4.xml +12 -0
  84. data/tools/test/js_libs/tests/rngtest5.html +60 -0
  85. data/tools/test/js_libs/tests/rngtest5.rng +75 -0
  86. data/tools/test/js_libs/tests/rngtest5.xml +40 -0
  87. data/tools/test/js_libs/tests/rngtest6.html +60 -0
  88. data/tools/test/js_libs/tests/rngtest6.rng +24 -0
  89. data/tools/test/js_libs/tests/rngtest6.xml +6 -0
  90. data/tools/test/js_libs/tests/rngtest8.html +60 -0
  91. data/tools/test/js_libs/tests/rngtest8.rng +13 -0
  92. data/tools/test/js_libs/tests/rngtest8.xml +2 -0
  93. data/tools/test/js_libs/tests/rngtest9.html +60 -0
  94. data/tools/test/js_libs/tests/rngtest9.rng +31 -0
  95. data/tools/test/js_libs/tests/rngtest9.xml +8 -0
  96. data/tools/test/js_libs/ui.css +333 -0
  97. data/tools/test/js_libs/ui.html +168 -0
  98. data/tools/test/js_libs/ui.js +177 -0
  99. data/tools/test/js_libs/underscore.min.js +27 -0
  100. data/tools/test/js_libs/util.js +81 -0
  101. data/tools/test/js_libs/vkbeautify.0.99.00.beta.js +358 -0
  102. data/tools/test/js_libs/vkbeautify.js +1 -0
  103. data/tools/test/js_libs/webcomponents.min.js +196 -0
  104. data/tools/test/model.html +192 -0
  105. data/tools/test/rngs/attributes.rng +8 -0
  106. data/tools/test/rngs/dataelements.rng +8 -0
  107. data/tools/test/rngs/endpoints.rng +8 -0
  108. data/tools/test/templates.legacy/Async.xml +46 -0
  109. data/tools/test/templates.legacy/BCO.xml +70 -0
  110. data/tools/test/templates.legacy/BCS.xml +70 -0
  111. data/tools/test/templates.legacy/Centurio.xml +75 -0
  112. data/tools/test/templates.legacy/Concurrent.xml +40 -0
  113. data/tools/test/templates.legacy/Coopis Testset.xml +76 -0
  114. data/tools/test/templates.legacy/Endpoints and Data Manipulation.xml +30 -0
  115. data/tools/test/templates.legacy/ICSOC Testset.xml +95 -0
  116. data/tools/test/templates.legacy/Infinity.xml +28 -0
  117. data/tools/test/templates.legacy/Lego Boxer.xml +31 -0
  118. data/tools/test/templates.legacy/Lego Conveyor.xml +31 -0
  119. data/tools/test/templates.legacy/Lego Crane.xml +87 -0
  120. data/tools/test/templates.legacy/Lego Ejector.xml +55 -0
  121. data/tools/test/templates.legacy/Lego Full.xml +142 -0
  122. data/tools/test/templates.legacy/Lego Liddy.xml +40 -0
  123. data/tools/test/templates.legacy/Lego Plate.xml +31 -0
  124. data/tools/test/templates.legacy/Lego Transporter.xml +43 -0
  125. data/tools/test/templates.legacy/Lego_Part_1.xml +85 -0
  126. data/tools/test/templates.legacy/LgLinear.xml +65 -0
  127. data/tools/test/templates.legacy/Linear.xml +77 -0
  128. data/tools/test/templates.legacy/Log.xml +117 -0
  129. data/tools/test/templates.legacy/Mangler 1.xml +87 -0
  130. data/tools/test/templates.legacy/Mangler 2.xml +103 -0
  131. data/tools/test/templates.legacy/Manuel Labels.xml +55 -0
  132. data/tools/test/templates.legacy/Promise.xml +275 -0
  133. data/tools/test/templates.legacy/SOPROMO Test Sonification.xml +83 -0
  134. data/tools/test/templates.legacy/Subprocess.xml +56 -0
  135. data/tools/test/templates.legacy/Syncing P34 1.xml +77 -0
  136. data/tools/test/templates.legacy/Syncing P34 2.xml +77 -0
  137. data/tools/test/templates.legacy/Syncing P34 3.xml +77 -0
  138. data/tools/test/templates.legacy/Syncing P34.xml +77 -0
  139. data/tools/test/templates.legacy/TEST - Bad Loop.xml +173 -0
  140. data/tools/test/templates.legacy/TEST - Wrong Positions.xml +174 -0
  141. data/tools/test/templates.legacy/Take_5.xml +48 -0
  142. data/tools/test/templates.legacy/Update.xml +32 -0
  143. data/tools/test/templates.legacy/Worklist Parallel.xml +104 -0
  144. data/tools/test/templates.legacy/Worklist Test CPEE.xml +40 -0
  145. data/tools/test/templates.legacy/Worklist Test.xml +42 -0
  146. data/tools/test/templates.legacy/Worklist Test2.xml +43 -0
  147. data/tools/test/templates.legacy/convert_cpee2.rb +15 -0
  148. data/tools/test/templates.legacy/convert_preset.rb +32 -0
  149. data/tools/test/templates.legacy/testsets.xml +37 -0
  150. data/tools/test/templates.legacy/transformations.xml +4 -0
  151. data/tools/test/templates/Coopis 2010.xml +76 -0
  152. data/tools/test/templates/IUPC arXiv:1104.3609 P34 1.xml +77 -0
  153. data/tools/test/templates/IUPC arXiv:1104.3609 P34 2.xml +77 -0
  154. data/tools/test/templates/IUPC arXiv:1104.3609 P34 3.xml +77 -0
  155. data/tools/test/templates/Track Test Local.xml +82 -0
  156. data/tools/test/templates/Track Test.xml +82 -0
  157. data/tools/test/templates/UR-VUE 2020 Manual Adjust.xml +182 -0
  158. data/tools/test/templates/UR-VUE 2020 Solution Baseline.xml +203 -0
  159. data/tools/test/templates/UR-VUE 2020 Solution NN.xml +197 -0
  160. data/tools/test/templates/UR-VUE 2020 Solution View.xml +151 -0
  161. data/tools/test/templates/UR-VUE 2020.xml +26 -0
  162. data/tools/test/templates/Worklist.xml +42 -0
  163. data/tools/test/templates/instantiate.local/Take_Sub.xml +59 -0
  164. data/tools/test/templates/instantiate/Take_Perf.xml +46 -0
  165. data/tools/test/templates/instantiate/Take_Sub.xml +58 -0
  166. data/tools/test/templates/instantiate/Take_X.xml +48 -0
  167. data/tools/test/themes/compact/theme.js +1285 -0
  168. data/tools/test/themes/diana/theme.js +1650 -0
  169. data/tools/test/themes/extended/theme.js +1325 -0
  170. data/tools/test/themes/model/rngs/alternative.rng +1 -0
  171. data/tools/test/themes/model/rngs/call.rng +67 -0
  172. data/tools/test/themes/model/rngs/callmanipulate.rng +72 -0
  173. data/tools/test/themes/model/rngs/choose.rng +1 -0
  174. data/tools/test/themes/model/rngs/critical.rng +1 -0
  175. data/tools/test/themes/model/rngs/escape.rng +1 -0
  176. data/tools/test/themes/model/rngs/group.rng +1 -0
  177. data/tools/test/themes/model/rngs/loop.rng +1 -0
  178. data/tools/test/themes/model/rngs/manipulate.rng +1 -0
  179. data/tools/test/themes/model/rngs/otherwise.rng +1 -0
  180. data/tools/test/themes/model/rngs/parallel.rng +1 -0
  181. data/tools/test/themes/model/rngs/parallel_branch.rng +1 -0
  182. data/tools/test/themes/model/rngs/scripts.rng +7 -0
  183. data/tools/test/themes/model/rngs/stop.rng +1 -0
  184. data/tools/test/themes/model/rngs/terminate.rng +1 -0
  185. data/tools/test/themes/model/theme.js +1268 -0
  186. data/tools/test/themes/packed/theme.js +1286 -0
  187. data/tools/test/themes/preset/rngs/alternative.rng +25 -0
  188. data/tools/test/themes/preset/rngs/call.rng +122 -0
  189. data/tools/test/themes/preset/rngs/callmanipulate.rng +145 -0
  190. data/tools/test/themes/preset/rngs/choose.rng +14 -0
  191. data/tools/test/themes/preset/rngs/closed_loop.rng +62 -0
  192. data/tools/test/themes/preset/rngs/closed_loop_cancel.rng +5 -0
  193. data/tools/test/themes/preset/rngs/closed_loop_control.rng +31 -0
  194. data/tools/test/themes/preset/rngs/closed_loop_measuring.rng +12 -0
  195. data/tools/test/themes/preset/rngs/critical.rng +5 -0
  196. data/tools/test/themes/preset/rngs/escape.rng +1 -0
  197. data/tools/test/themes/preset/rngs/group.rng +3 -0
  198. data/tools/test/themes/preset/rngs/loop.rng +22 -0
  199. data/tools/test/themes/preset/rngs/manipulate.rng +9 -0
  200. data/tools/test/themes/preset/rngs/otherwise.rng +22 -0
  201. data/tools/test/themes/preset/rngs/parallel.rng +21 -0
  202. data/tools/test/themes/preset/rngs/parallel_branch.rng +8 -0
  203. data/tools/test/themes/preset/rngs/scripts.rng +23 -0
  204. data/tools/test/themes/preset/rngs/stop.rng +5 -0
  205. data/tools/test/themes/preset/rngs/terminate.rng +1 -0
  206. data/tools/test/themes/preset/symbols/alternative.svg +5 -0
  207. data/tools/test/themes/preset/symbols/arrow.svg +3 -0
  208. data/tools/test/themes/preset/symbols/call.svg +6 -0
  209. data/tools/test/themes/preset/symbols/callmanipulate.svg +8 -0
  210. data/tools/test/themes/preset/symbols/choose.svg +5 -0
  211. data/tools/test/themes/preset/symbols/choose_exclusive.svg +5 -0
  212. data/tools/test/themes/preset/symbols/choose_inclusive.svg +4 -0
  213. data/tools/test/themes/preset/symbols/closed_loop.svg +5 -0
  214. data/tools/test/themes/preset/symbols/closed_loop_cancel.svg +5 -0
  215. data/tools/test/themes/preset/symbols/closed_loop_control.svg +5 -0
  216. data/tools/test/themes/preset/symbols/closed_loop_measuring.svg +6 -0
  217. data/tools/test/themes/preset/symbols/complex.svg +8 -0
  218. data/tools/test/themes/preset/symbols/critical.svg +4 -0
  219. data/tools/test/themes/preset/symbols/end.svg +3 -0
  220. data/tools/test/themes/preset/symbols/escape.svg +5 -0
  221. data/tools/test/themes/preset/symbols/event_end.svg +3 -0
  222. data/tools/test/themes/preset/symbols/loop.svg +5 -0
  223. data/tools/test/themes/preset/symbols/manipulate.svg +4 -0
  224. data/tools/test/themes/preset/symbols/otherwise.svg +5 -0
  225. data/tools/test/themes/preset/symbols/parallel.svg +5 -0
  226. data/tools/test/themes/preset/symbols/parallel_branch.svg +5 -0
  227. data/tools/test/themes/preset/symbols/parallel_branch_compact.svg +4 -0
  228. data/tools/test/themes/preset/symbols/parallel_branch_event.svg +14 -0
  229. data/tools/test/themes/preset/symbols/parallel_branch_normal.svg +5 -0
  230. data/tools/test/themes/preset/symbols/scripts.svg +4 -0
  231. data/tools/test/themes/preset/symbols/start.svg +3 -0
  232. data/tools/test/themes/preset/symbols/stop.svg +5 -0
  233. data/tools/test/themes/preset/symbols/terminate.svg +4 -0
  234. data/tools/test/themes/preset/theme.js +1287 -0
  235. data/tools/test/track.html +142 -0
  236. metadata +221 -2
@@ -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>