cpee 2.0.21 → 2.0.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/CPEE.xml +8 -0
  3. data/cockpit/Signavio.xml +8 -0
  4. data/cockpit/css/model.css +2 -0
  5. data/cockpit/css/replay.css +55 -0
  6. data/cockpit/css/ui.css +29 -5
  7. data/cockpit/edit.html +263 -0
  8. data/cockpit/graph.html +3 -3
  9. data/cockpit/index.html +11 -8
  10. data/cockpit/js/details.js +0 -1
  11. data/cockpit/js/edit.js +32 -0
  12. data/cockpit/js/instance.js +52 -52
  13. data/cockpit/js/model.js +6 -36
  14. data/cockpit/js/parameters.js +9 -4
  15. data/cockpit/js/replay.js +40 -0
  16. data/cockpit/js/ui.js +7 -0
  17. data/cockpit/model.html +8 -4
  18. data/cockpit/replay.html +53 -0
  19. data/cockpit/templates/Coopis 2010.xml +1 -1
  20. data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +1 -1
  21. data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +1 -1
  22. data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +1 -1
  23. data/cockpit/templates/Track Test Local.xml +6 -2
  24. data/cockpit/templates/Track Test.xml +5 -1
  25. data/cockpit/templates/UR-VUE 2020 Manual Adjust.xml +5 -1
  26. data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml +8 -4
  27. data/cockpit/templates/UR-VUE 2020 Solution NN.xml +8 -4
  28. data/cockpit/templates/UR-VUE 2020 Solution View.xml +8 -4
  29. data/cockpit/templates/UR-VUE 2020.xml +8 -4
  30. data/cockpit/templates/instantiate.local/Take_Sub.xml +1 -1
  31. data/cockpit/themes/compact/rngs/call.rng +93 -41
  32. data/cockpit/themes/compact/rngs/callmanipulate.rng +113 -40
  33. data/cockpit/themes/compact/theme.js +57 -25
  34. data/cockpit/themes/{diana → control}/rngs/alternative.rng +0 -0
  35. data/cockpit/themes/control/rngs/call.rng +174 -0
  36. data/cockpit/themes/control/rngs/callmanipulate.rng +218 -0
  37. data/cockpit/themes/{diana → control}/rngs/choose.rng +0 -0
  38. data/cockpit/themes/{diana → control}/rngs/closed_loop.rng +0 -0
  39. data/cockpit/themes/{diana → control}/rngs/closed_loop_cancel.rng +0 -0
  40. data/cockpit/themes/{diana → control}/rngs/closed_loop_control.rng +0 -0
  41. data/cockpit/themes/{diana → control}/rngs/closed_loop_measuring.rng +0 -0
  42. data/cockpit/themes/{diana → control}/rngs/critical.rng +0 -0
  43. data/cockpit/themes/{diana → control}/rngs/escape.rng +0 -0
  44. data/cockpit/themes/{diana → control}/rngs/group.rng +0 -0
  45. data/cockpit/themes/{diana → control}/rngs/loop.rng +0 -0
  46. data/cockpit/themes/{diana → control}/rngs/manipulate.rng +0 -0
  47. data/cockpit/themes/{diana → control}/rngs/otherwise.rng +0 -0
  48. data/cockpit/themes/{diana → control}/rngs/parallel.rng +0 -0
  49. data/cockpit/themes/{diana → control}/rngs/parallel_branch.rng +0 -0
  50. data/cockpit/themes/{diana → control}/rngs/scripts.rng +0 -0
  51. data/cockpit/themes/{diana → control}/rngs/stop.rng +0 -0
  52. data/cockpit/themes/{diana → control}/rngs/terminate.rng +0 -0
  53. data/cockpit/themes/{diana → control}/symbols/alternative.svg +0 -0
  54. data/cockpit/themes/{diana → control}/symbols/arrow.svg +0 -0
  55. data/cockpit/themes/{diana → control}/symbols/call.svg +0 -0
  56. data/cockpit/themes/{diana → control}/symbols/callmanipulate.svg +0 -0
  57. data/cockpit/themes/{diana → control}/symbols/choose.svg +0 -0
  58. data/cockpit/themes/{diana → control}/symbols/choose_exclusive.svg +0 -0
  59. data/cockpit/themes/{diana → control}/symbols/choose_inclusive.svg +0 -0
  60. data/cockpit/themes/{diana → control}/symbols/closed_loop.svg +0 -0
  61. data/cockpit/themes/{diana → control}/symbols/closed_loop_cancel.svg +0 -0
  62. data/cockpit/themes/{diana → control}/symbols/closed_loop_control.svg +0 -0
  63. data/cockpit/themes/{diana → control}/symbols/closed_loop_measuring.svg +0 -0
  64. data/cockpit/themes/{diana → control}/symbols/complex.svg +0 -0
  65. data/cockpit/themes/{diana → control}/symbols/critical.svg +0 -0
  66. data/cockpit/themes/{diana → control}/symbols/end.svg +0 -0
  67. data/cockpit/themes/{diana → control}/symbols/escape.svg +0 -0
  68. data/cockpit/themes/{diana → control}/symbols/event_end.svg +0 -0
  69. data/cockpit/themes/{diana → control}/symbols/loop.svg +0 -0
  70. data/cockpit/themes/{diana → control}/symbols/manipulate.svg +0 -0
  71. data/cockpit/themes/{diana → control}/symbols/otherwise.svg +0 -0
  72. data/cockpit/themes/{diana → control}/symbols/parallel.svg +0 -0
  73. data/cockpit/themes/{diana → control}/symbols/parallel_branch.svg +0 -0
  74. data/cockpit/themes/{diana → control}/symbols/parallel_branch_compact.svg +0 -0
  75. data/cockpit/themes/{diana → control}/symbols/parallel_branch_event.svg +0 -0
  76. data/cockpit/themes/{diana → control}/symbols/parallel_branch_normal.svg +0 -0
  77. data/cockpit/themes/{diana → control}/symbols/scripts.svg +0 -0
  78. data/cockpit/themes/{diana → control}/symbols/start.svg +0 -0
  79. data/cockpit/themes/{diana → control}/symbols/stop.svg +0 -0
  80. data/cockpit/themes/{diana → control}/symbols/terminate.svg +0 -0
  81. data/cockpit/themes/{diana → control}/theme.js +74 -28
  82. data/cockpit/themes/default/rngs/call.rng +93 -41
  83. data/cockpit/themes/default/rngs/callmanipulate.rng +113 -40
  84. data/cockpit/themes/default/theme.js +1318 -0
  85. data/cockpit/themes/extended/rngs/call.rng +93 -41
  86. data/cockpit/themes/extended/rngs/callmanipulate.rng +113 -40
  87. data/cockpit/themes/extended/theme.js +50 -19
  88. data/cockpit/themes/model/rngs/call.rng +21 -20
  89. data/cockpit/themes/model/rngs/callmanipulate.rng +23 -22
  90. data/cockpit/themes/model/theme.js +51 -20
  91. data/cockpit/themes/packed/rngs/call.rng +93 -41
  92. data/cockpit/themes/packed/rngs/callmanipulate.rng +113 -40
  93. data/cockpit/themes/packed/theme.js +50 -19
  94. data/cockpit/themes/preset/rngs/call.rng +93 -41
  95. data/cockpit/themes/preset/rngs/callmanipulate.rng +113 -40
  96. data/cockpit/themes/preset/theme.js +49 -18
  97. data/cockpit/track.html +3 -10
  98. data/cockpit/transformations.xml +4 -0
  99. data/cpee.gemspec +2 -2
  100. data/lib/callbacks.xml +5 -0
  101. data/lib/cpee/controller.rb +30 -28
  102. data/lib/cpee/implementation_callbacks.rb +60 -0
  103. data/lib/cpee/implementation_notifications.rb +6 -2
  104. data/server/handlerwrappers/default.rb +17 -5
  105. data/server/resources/notifications/logging/subscription.xml +6 -0
  106. data/server/resources/transformation_dslx.xsl +1 -1
  107. data/server/routing/end.pid +1 -0
  108. data/server/routing/end.rb +1 -0
  109. data/server/routing/forward-events.pid +1 -0
  110. data/server/routing/forward-votes.pid +1 -0
  111. data/server/routing/forward-votes.rb +6 -5
  112. data/server/routing/persist.pid +1 -0
  113. data/server/routing/persist.rb +4 -4
  114. data/server/server.pid +1 -0
  115. metadata +63 -50
  116. data/cockpit/edit.html +0 -1
  117. data/cockpit/themes/diana/rngs/call.rng +0 -122
  118. data/cockpit/themes/diana/rngs/callmanipulate.rng +0 -145
@@ -26,7 +26,8 @@
26
26
  </zeroOrMore>
27
27
  </element>
28
28
  <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
- <element name="sensors" rngui:header="Sensors" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
30
31
  <zeroOrMore rngui:label="Add Sensor">
31
32
  <element name="sensor">
32
33
  <element name="name" rngui:label="Label">
@@ -35,8 +36,13 @@
35
36
  <element name="extractor_url" rngui:label="Extractor Url">
36
37
  <data type="string" rngui:label="Service Url"/>
37
38
  </element>
38
- <element name="extractor_arg" rngui:label="Extractor Argument">
39
- <data type="string" rngui:label="Value / Json"/>
39
+ <element name="extractor_params" rngui:label="Extractor Arguments:">
40
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
41
+ <element rngui:label="Name">
42
+ <anyName/>
43
+ <data type="string" rngui:label="Value / Json"/>
44
+ </element>
45
+ </zeroOrMore>
40
46
  </element>
41
47
  <element name="visualizer_url" rngui:label="Visualizer Url">
42
48
  <data type="string" rngui:label="Service Url"/>
@@ -52,50 +58,68 @@
52
58
  </element>
53
59
  </zeroOrMore>
54
60
  </element>
55
- <element name="aggregators" rngui:header="Aggregators" rngui:fold="closed">
56
- <zeroOrMore rngui:label="Add Aggregator">
57
- <element name="aggregator">
58
- <element name="name" rngui:label="Label">
59
- <data type="string" rngui:label="Label"/>
60
- </element>
61
- <element name="aggregator_url" rngui:label="Aggregator Url">
62
- <data type="string" rngui:label="Service Url"/>
63
- </element>
64
- <element name="aggregator_arg" rngui:label="Aggregator Argument">
65
- <data type="string" rngui:label="Value / Json"/>
66
- </element>
67
- </element>
68
- </zeroOrMore>
69
- </element>
70
- <element name="costs" rngui:header="Costs" rngui:fold="closed">
71
- <zeroOrMore rngui:label="Create Cost Factor">
72
- <element name="cost_factor">
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
73
65
  <element name="name" rngui:label="Label">
74
66
  <data type="string" rngui:label="Label"/>
75
67
  </element>
76
68
  <element name="target" rngui:label="Target Value">
77
69
  <data type="string" rngui:label="Value"/>
78
70
  </element>
79
- <element name="vfunc_url" rngui:label="Violation Function Url">
80
- <data type="string" rngui:label="Service Url"/>
81
- </element>
82
- <element name="vfunc_arg" rngui:label="Violation Function Argument">
83
- <data type="string" rngui:label="Service Url"/>
71
+ <element name="ifs" rngui:header="Impact Factors">
72
+ <zeroOrMore rngui:label="Add Impact Factor">
73
+ <element name="if">
74
+ <element name="ivs" rngui:header="Impact Values">
75
+ <zeroOrMore rngui:label="Add Impact Value ">
76
+ <element name="iv">
77
+ <element name="extractor_url" rngui:label="Extractor Url">
78
+ <data type="string" rngui:label="Service Url + Parameters"/>
79
+ </element>
80
+ <element name="extractor_params" rngui:header="Extractor Arguments">
81
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
82
+ <element rngui:label="Name">
83
+ <anyName/>
84
+ <data type="string" rngui:label="Value / Json"/>
85
+ </element>
86
+ </zeroOrMore>
87
+ </element>
88
+ <element name="aggregator_url" rngui:label="Aggregator Url">
89
+ <data type="string" rngui:label="Service Url + Parameters"/>
90
+ </element>
91
+ <element name="aggregator_params" rngui:header="Extractor Arguments">
92
+ <zeroOrMore rngui:label="Create Aggregator Argument Pairs">
93
+ <element rngui:label="Name">
94
+ <anyName/>
95
+ <data type="string" rngui:label="Value / Json"/>
96
+ </element>
97
+ </zeroOrMore>
98
+ </element>
99
+ </element>
100
+ </zeroOrMore>
101
+ </element>
102
+ <element name="aggregator_url" rngui:label="Impact Function Url">
103
+ <data type="string" rngui:label="Service Url + Parameters"/>
104
+ </element>
105
+ </element>
106
+ </zeroOrMore>
84
107
  </element>
85
- <element name="vcost" rngui:label="Violation Cost">
86
- <data type="string" rngui:label="Value"/>
108
+ <element name="vfunc_url" rngui:label="Violation Function Url">
109
+ <data type="string" rngui:label="Service Url + Parameters"/>
87
110
  </element>
88
111
  </element>
89
112
  </zeroOrMore>
90
113
  </element>
114
+
91
115
  </element>
92
- <element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
116
+ <element name="report" rngui:header="Reporting" rngui:fold="closed">
93
117
  <element name="url" rngui:label='HTML Snippet'>
94
118
  <data type="string" rngui:label="url to report snippet"/>
95
119
  </element>
96
120
  </element>
97
121
  </element>
98
- <element name="code" rngui:header="Implementation">
122
+ <element name="code" rngui:header="Output Handling">
99
123
  <element name="prepare" rngui:header="Prepare" rngui:label="Code" rngui:fold="closed_conditional">
100
124
  <text rngui:label="Script that is executed, before a service call"/>
101
125
  </element>
@@ -120,21 +144,40 @@
120
144
  </element>
121
145
  <element name="annotations" rngui:header="Annotations">
122
146
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
123
- <element name="_timing_wait" rngui:label="&#x3C9; - Wait">
147
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
124
148
  <data type="float" rngui:label="[0,1]"/>
125
149
  </element>
126
- <element name="_timing_threshold" rngui:label="&#x3BA; - Threshold">
127
- <data type="float" rngui:label="[0,3,n]"/>
128
- </element>
129
- <element name="_timing_min" rngui:label="Min in min">
130
- <data type="float" rngui:label="Minutes"/>
131
- </element>
132
- <element name="_timing_max" rngui:label="Max in min">
133
- <data type="float" rngui:label="Minutes"/>
134
- </element>
135
150
  <element name="_timing_avg" rngui:label="Avg in min">
136
151
  <data type="float" rngui:label="Minutes"/>
137
152
  </element>
153
+ <element name="explanations" rngui:header="Explanations">
154
+ <zeroOrMore rngui:label="Add Explanation">
155
+ <element name="explanation">
156
+ <element name="type" rngui:label="Type">
157
+ <choice>
158
+ <value>&gt;</value>
159
+ <value>&lt;</value>
160
+ </choice>
161
+ </element>
162
+ <element name="deviation" rngui:label="Deviation">
163
+ <data type="float" rngui:label="Minutes"/>
164
+ </element>
165
+ <element name="behaviour" rngui:label="Behaviour">
166
+ <choice>
167
+ <value>Immediately</value>
168
+ <value>Wait until next</value>
169
+ <value>Use grace period value</value>
170
+ </choice>
171
+ </element>
172
+ <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
173
+ <data type="float" rngui:label="Minutes"/>
174
+ </element>
175
+ <element name="text" rngui:label="Explanation">
176
+ <data type="string" rngui:label="Patterns"/>
177
+ </element>
178
+ </element>
179
+ </zeroOrMore>
180
+ </element>
138
181
  </element>
139
182
  <element name="_notes" rngui:header="Notes" rngui:fold="closed">
140
183
  <element name="_notes_general" rngui:label="General">
@@ -142,4 +185,34 @@
142
185
  </element>
143
186
  </element>
144
187
  </element>
188
+ <element name="input" rngui:header="Input Arguments Documentation" rngui:fold="closed">
189
+ <zeroOrMore rngui:label="Create Argument">
190
+ <element name="item" rngui:label="Description">
191
+ <attribute name="label" rngui:label="Name">
192
+ <data type="string"/>
193
+ </attribute>
194
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
195
+ </element>
196
+ </zeroOrMore>
197
+ </element>
198
+ <element name="output" rngui:header="Output Elements Documentation" rngui:fold="closed">
199
+ <zeroOrMore rngui:label="Create Element">
200
+ <element name="item" rngui:label="Description">
201
+ <attribute name="label" rngui:label="Name">
202
+ <data type="string"/>
203
+ </attribute>
204
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
205
+ </element>
206
+ </zeroOrMore>
207
+ </element>
208
+ <element name="implementation" rngui:header="Implementation Documentation" rngui:fold="closed">
209
+ <element name="description" rngui:label="Description">
210
+ <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
211
+ </element>
212
+ </element>
213
+ <element name="code" rngui:header="Output Handling Documentation" rngui:fold="closed">
214
+ <element name="description" rngui:label="Description">
215
+ <text rngui:wrap="true" rngui:label="Which output elements are important? How to transform and save them?"/>
216
+ </element>
217
+ </element>
145
218
  </element>
@@ -15,11 +15,7 @@ function WFAdaptorManifestation(adaptor) {
15
15
  $('#relaxngworker').empty();
16
16
  var rngw = new RelaxNGui(base,$('#relaxngworker'),self.adaptor.description.context_eval);
17
17
  var nnew = $(rngw.save().documentElement);
18
- nnew.attr('trans-xmlns','http://cpee.org/ns/description/1.0');
19
- var ntxt = nnew.serializeXML();
20
- ntxt = ntxt.replace(/trans-xmlns/,'xmlns');
21
-
22
- return($X(ntxt));
18
+ return(nnew);
23
19
  } else {
24
20
  if (opts && opts == 'clone') {
25
21
  base = base.clone();
@@ -53,6 +49,16 @@ function WFAdaptorManifestation(adaptor) {
53
49
  });
54
50
  return svgid;
55
51
  }; //}}}
52
+ //{{{ Return the json for all marked tasks
53
+ this.marked_text = function(){
54
+ var nodes = [];
55
+ var markymark = _.uniq(self.marked());
56
+ $(markymark).each(function(key,svgid){
57
+ var node = self.adaptor.description.get_node_by_svg_id(svgid);
58
+ nodes.push($(node).serializePrettyXML());
59
+ });
60
+ return JSON.stringify(nodes);
61
+ }; //}}}
56
62
  //{{{ Render the details from rng (right hand side of graph tab)
57
63
  this.update_details = function(svgid){
58
64
  var tab = $('#dat_details');
@@ -69,41 +75,57 @@ function WFAdaptorManifestation(adaptor) {
69
75
  $(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
70
76
  }
71
77
  save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
72
- save['details'].content(node);
78
+ var nn = $X($(node).serializeXML());
79
+ nn.removeAttr('svg-id');
80
+ nn.removeAttr('svg-type');
81
+ nn.removeAttr('svg-subtype');
82
+ nn.removeAttr('svg-label');
83
+ save['details'].content(nn);
73
84
  format_visual_forms();
74
85
  }
75
86
  }; //}}}
76
87
 
77
88
  function copyOrMove(menu,group,xml_node,mode) { //{{{
78
- var markymark = _.uniq(self.marked());
89
+ var nodes = localStorage.getItem('marked');
90
+
91
+ if (typeof(nodes) != "string") { return; }
92
+
93
+ nodes = JSON.parse(nodes);
94
+ $(nodes).each(function(key,str) {
95
+ nodes[key] = $X(str);;
96
+ });
97
+
79
98
  var check1 = [];
80
99
  var check2 = [];
81
- $(markymark).each(function(key,svgid){
82
- var node = self.adaptor.description.get_node_by_svg_id(svgid);
100
+ $(nodes).each(function(key,node){
83
101
  check1.push($(node).attr('svg-type'));
84
102
  });
85
103
  $(group).each(function(key,value){
86
104
  check2.push(value.type);
87
105
  });
88
106
 
89
- if (markymark.length > 0 && _.uniq(check1).length == _.intersection(check1,check2).length) {
90
- var nodes = [];
91
- $(markymark).each(function(key,svgid){
92
- var node = self.adaptor.description.get_node_by_svg_id(svgid);
93
- nodes.unshift(node);
94
- });
95
-
107
+ if (nodes.length > 0 && _.uniq(check1).length == _.intersection(check1,check2).length) {
108
+ if (myid == localStorage.getItem('marked_from')) {
109
+ $(nodes).each(function(key,node){
110
+ nodes[key] = self.adaptor.description.get_node_by_svg_id($(node).attr('svg-id'));
111
+ });
112
+ }
113
+ nodes.reverse();
96
114
  var iconm = self.resources['arrow'].clone();
97
115
  var iconc = self.resources['arrow'].clone();
98
116
  iconm.children('.rfill').addClass('menu');
117
+ if (myid == localStorage.getItem('marked_from')) {
118
+ menu.push(
119
+ {
120
+ 'label': '<em>Move Marked Elements</em>',
121
+ 'function_call': mode,
122
+ 'menu_icon': iconm,
123
+ 'type': undefined,
124
+ 'params': [nodes, xml_node]
125
+ }
126
+ );
127
+ }
99
128
  menu.push(
100
- {
101
- 'label': '<em>Move Marked Elements</em>',
102
- 'function_call': mode,
103
- 'menu_icon': iconm,
104
- 'type': undefined,
105
- 'params': [nodes, xml_node]
106
- },
107
129
  {
108
130
  'label': '<em>Copy Marked Elements</em>',
109
131
  'function_call': mode,
@@ -216,16 +238,26 @@ function WFAdaptorManifestation(adaptor) {
216
238
  self.adaptor.illustrator.get_elements().removeClass('selected');
217
239
  self.adaptor.illustrator.get_labels().removeClass('selected');
218
240
 
219
- if (e && e.ctrlKey) {
241
+ if (e && (e.ctrlKey || e.metaKey)) {
220
242
  if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
221
243
  var tab = $('#dat_details');
222
244
  tab.empty();
223
245
  var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
224
246
  if (vtarget.length > 0) {
225
- vtarget.parents('g.element[element-id]').toggleClass('marked');
247
+ var vt = vtarget.parents('g.element[element-id]');
248
+ vt.toggleClass('marked');
249
+ if (vt.hasClass('marked')) {
250
+ localStorage.setItem('marked',self.marked_text());
251
+ localStorage.setItem('marked_from',myid);
252
+ } else {
253
+ localStorage.removeItem('marked');
254
+ localStorage.removeItem('marked_from');
255
+ }
226
256
  }
227
257
  } else {
228
258
  self.adaptor.illustrator.get_elements().removeClass('marked');
259
+ localStorage.removeItem('marked');
260
+ localStorage.removeItem('marked_from');
229
261
 
230
262
  var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
231
263
  if (vtarget.length > 0) {
@@ -0,0 +1,174 @@
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" ns="http://cpee.org/ns/description/1.0" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
5
+ <attribute name="endpoint" rngui:label="Endpoint">
6
+ <data type="string"/>
7
+ </attribute>
8
+ <element name="parameters" rngui:header="Properties">
9
+ <element name="label" rngui:label="Label">
10
+ <data type="string" rngui:label="Short description of the task"/>
11
+ </element>
12
+ <element name="method" rngui:label="Method">
13
+ <choice>
14
+ <value>:post</value>
15
+ <value>:get</value>
16
+ <value>:put</value>
17
+ <value>:delete</value>
18
+ </choice>
19
+ </element>
20
+ <element name="arguments" rngui:header="Arguments">
21
+ <zeroOrMore rngui:label="Create Argument Pair">
22
+ <element rngui:label="Name" rngui:labeltype="xml">
23
+ <anyName/>
24
+ <data type="string" rngui:label="Value"/>
25
+ </element>
26
+ </zeroOrMore>
27
+ </element>
28
+ <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
31
+ <zeroOrMore rngui:label="Add Sensor">
32
+ <element name="sensor">
33
+ <element name="name" rngui:label="Label">
34
+ <data type="string" rngui:label="Label"/>
35
+ </element>
36
+ <element name="extractor_url" rngui:label="Extractor Url">
37
+ <data type="string" rngui:label="Service Url"/>
38
+ </element>
39
+ <element name="extractor_params" rngui:label="Extractor Arguments:">
40
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
41
+ <element rngui:label="Name">
42
+ <anyName/>
43
+ <data type="string" rngui:label="Value / Json"/>
44
+ </element>
45
+ </zeroOrMore>
46
+ </element>
47
+ <element name="visualizer_url" rngui:label="Visualizer Url">
48
+ <data type="string" rngui:label="Service Url"/>
49
+ </element>
50
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
51
+ <zeroOrMore rngui:label="Create Visualizer Argument Pairs">
52
+ <element rngui:label="Name">
53
+ <anyName/>
54
+ <data type="string" rngui:label="Value / Json"/>
55
+ </element>
56
+ </zeroOrMore>
57
+ </element>
58
+ </element>
59
+ </zeroOrMore>
60
+ </element>
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
65
+ <element name="name" rngui:label="Label">
66
+ <data type="string" rngui:label="Label"/>
67
+ </element>
68
+ <element name="target" rngui:label="Target Value">
69
+ <data type="string" rngui:label="Value"/>
70
+ </element>
71
+ <element name="ifs" rngui:header="Impact Factors">
72
+ <zeroOrMore rngui:label="Add Impact Factor">
73
+ <element name="if">
74
+ <element name="ivs" rngui:header="Impact Values">
75
+ <zeroOrMore rngui:label="Add Impact Value ">
76
+ <element name="iv">
77
+ <element name="extractor_url" rngui:label="Extractor Url">
78
+ <data type="string" rngui:label="Service Url + Parameters"/>
79
+ </element>
80
+ <element name="aggregator_url" rngui:label="Aggregator Url">
81
+ <data type="string" rngui:label="Service Url + Parameters"/>
82
+ </element>
83
+ </element>
84
+ </zeroOrMore>
85
+ </element>
86
+ <element name="aggregator_url" rngui:label="Impact Function Url">
87
+ <data type="string" rngui:label="Service Url + Parameters"/>
88
+ </element>
89
+ </element>
90
+ </zeroOrMore>
91
+ </element>
92
+ <element name="vfunc_url" rngui:label="Violation Function Url">
93
+ <data type="string" rngui:label="Service Url + Parameters"/>
94
+ </element>
95
+ </element>
96
+ </zeroOrMore>
97
+ </element>
98
+
99
+ </element>
100
+ <element name="report" rngui:header="Reporting" rngui:fold="closed">
101
+ <element name="url" rngui:label='HTML Snippet'>
102
+ <data type="string" rngui:label="url to report snippet"/>
103
+ </element>
104
+ </element>
105
+ </element>
106
+ <element name="annotations" rngui:header="Annotations">
107
+ <element name="_timing" rngui:header="Timing" rngui:fold="closed">
108
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
109
+ <data type="float" rngui:label="[0,1]"/>
110
+ </element>
111
+ <element name="_timing_avg" rngui:label="Avg in min">
112
+ <data type="float" rngui:label="Minutes"/>
113
+ </element>
114
+ <element name="explanations" rngui:header="Explanations">
115
+ <zeroOrMore rngui:label="Add Explanation">
116
+ <element name="explanation">
117
+ <element name="type" rngui:label="Type">
118
+ <choice>
119
+ <value>&gt;</value>
120
+ <value>&lt;</value>
121
+ </choice>
122
+ </element>
123
+ <element name="deviation" rngui:label="Deviation">
124
+ <data type="float" rngui:label="Minutes"/>
125
+ </element>
126
+ <element name="behaviour" rngui:label="Behaviour">
127
+ <choice>
128
+ <value>Immediately</value>
129
+ <value>Wait until next</value>
130
+ <value>Use grace period value</value>
131
+ </choice>
132
+ </element>
133
+ <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
134
+ <data type="float" rngui:label="Minutes"/>
135
+ </element>
136
+ <element name="text" rngui:label="Explanation">
137
+ <data type="string" rngui:label="Patterns"/>
138
+ </element>
139
+ </element>
140
+ </zeroOrMore>
141
+ </element>
142
+ </element>
143
+ <element name="_notes" rngui:header="Notes" rngui:fold="closed">
144
+ <element name="_notes_general" rngui:label="General">
145
+ <text rngui:wrap="true" rngui:label="Notes"/>
146
+ </element>
147
+ </element>
148
+ </element>
149
+ <element name="input" rngui:header="Input Arguments Documentation" rngui:fold="closed">
150
+ <zeroOrMore rngui:label="Create Argument">
151
+ <element name="item" rngui:label="Description">
152
+ <attribute name="label" rngui:label="Name">
153
+ <data type="string"/>
154
+ </attribute>
155
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
156
+ </element>
157
+ </zeroOrMore>
158
+ </element>
159
+ <element name="output" rngui:header="Output Elements Documentation" rngui:fold="closed">
160
+ <zeroOrMore rngui:label="Create Element">
161
+ <element name="item" rngui:label="Description">
162
+ <attribute name="label" rngui:label="Name">
163
+ <data type="string"/>
164
+ </attribute>
165
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
166
+ </element>
167
+ </zeroOrMore>
168
+ </element>
169
+ <element name="implementation" rngui:header="Implementation Documentation" rngui:fold="closed">
170
+ <element name="description" rngui:label="Description">
171
+ <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
172
+ </element>
173
+ </element>
174
+ </element>