1function [simDoc, section] = saveSwitchoverStrategy(self, simDoc, section, ind)
2% [SIMDOC, SECTION] = SAVESWITCHOVERSTRATEGY(SIMDOC, SECTION, NODEIDX)
4% Copyright (c) 2012-2026, Imperial College London
10% Get exportable
classes (handles cache
classes and
class-switching)
11exportClasses = self.getExportableClasses();
14isf = sn.nodeToStation(ind);
15if sn.sched(isf) == SchedStrategy.POLLING
16 paramNode = simDoc.createElement(
'parameter');
17 paramNode.setAttribute(
'array',
'true');
18 paramNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.ServiceStrategy');
19 paramNode.setAttribute(
'name',
'SwitchoverStrategy');
21 procid_ir = sn.nodeparam{ind}{r}.switchoverProcId;
22 phases_ir = length(sn.nodeparam{ind}{r}.switchoverTime{1});
23 proc_ir = sn.nodeparam{ind}{r}.switchoverTime;
24 pie_ir = map_pie(proc_ir);
25 rates_ir = map_lambda(proc_ir);
26 scv_ir = map_scv(proc_ir);
27 refClassNode = simDoc.createElement(
'refClass');
28 refClassNode.appendChild(simDoc.createTextNode(sn.classnames{r}));
29 paramNode.appendChild(refClassNode);
30 serviceTimeStrategyNode = getServiceTimeStrategyNode(simDoc, procid_ir, phases_ir, proc_ir, pie_ir, rates_ir, scv_ir);
31 paramNode.appendChild(serviceTimeStrategyNode);
33 section.appendChild(paramNode);
35 paramNode = simDoc.createElement(
'parameter');
36 paramNode.setAttribute(
'array',
'true');
37 paramNode.setAttribute(
'classPath',
'java.lang.Object');
38 paramNode.setAttribute(
'name',
'SwitchoverStrategy');
40 % Skip
classes that should not be exported to JMT
45 refClassNode = simDoc.createElement(
'refClass');
46 refClassNode.appendChild(simDoc.createTextNode(sn.classnames{r}));
47 paramNode.appendChild(refClassNode);
49 subParClassRow = simDoc.createElement(
'subParameter');
50 subParClassRow.setAttribute(
'array',
'true');
51 subParClassRow.setAttribute(
'classPath',
'jmt.engine.NetStrategies.ServiceStrategy');
52 subParClassRow.setAttribute(
'name',
'SwitchoverStrategy');
54 % Skip
classes that should not be exported to JMT
59 refClassNode = simDoc.createElement(
'refClass');
60 refClassNode.appendChild(simDoc.createTextNode(sn.classnames{s}));
61 subParClassRow.appendChild(refClassNode);
62 procid_irs = sn.nodeparam{ind}{r}.switchoverProcId(s);
63 phases_irs = length(sn.nodeparam{ind}{r}.switchoverTime{s});
64 proc_irs = sn.nodeparam{ind}{r}.switchoverTime{s};
65 pie_irs = map_pie(proc_irs);
66 rates_irs = map_lambda(proc_irs);
67 scv_irs = map_scv(proc_irs);
68 subParClassCell = getServiceTimeStrategyNode(simDoc, procid_irs, phases_irs, proc_irs, pie_irs, rates_irs, scv_irs);
69 paramNode.appendChild(subParClassCell);
70 subParClassRow.appendChild(subParClassCell);
72 paramNode.appendChild(subParClassRow);
74 section.appendChild(paramNode);
78function serviceTimeStrategyNode = getServiceTimeStrategyNode(simDoc, procid_ir, phases_ir, proc_ir, pie_ir, rates_ir, scv_ir)
79serviceTimeStrategyNode = simDoc.createElement(
'subParameter');
80if procid_ir == ProcessType.DISABLED
81 serviceTimeStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.ServiceStrategies.DisabledServiceTimeStrategy');
82 serviceTimeStrategyNode.setAttribute(
'name',
'DisabledServiceTimeStrategy');
83elseif procid_ir == ProcessType.IMMEDIATE
84 serviceTimeStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.ServiceStrategies.ZeroServiceTimeStrategy');
85 serviceTimeStrategyNode.setAttribute(
'name',
'ZeroServiceTimeStrategy');
86elseif procid_ir == ProcessType.PH || procid_ir == ProcessType.APH || procid_ir == ProcessType.COXIAN || (phases_ir>2 && procid_ir == ProcessType.HYPEREXP) %|| (phases_ir>2 && procid_ir == ProcessType.COXIAN) || (phases_ir>2 && procid_ir == ProcessType.HYPEREXP)
87 serviceTimeStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy');
88 serviceTimeStrategyNode.setAttribute(
'name',
'ServiceTimeStrategy');
89 distributionNode = simDoc.createElement(
'subParameter');
90 distributionNode.setAttribute(
'classPath',
'jmt.engine.random.PhaseTypeDistr');
91 distributionNode.setAttribute(
'name',
'Phase-Type');
92 distrParNode = simDoc.createElement(
'subParameter');
93 distrParNode.setAttribute(
'classPath',
'jmt.engine.random.PhaseTypePar');
94 distrParNode.setAttribute(
'name',
'distrPar');
96 subParNodeAlpha = simDoc.createElement(
'subParameter');
97 subParNodeAlpha.setAttribute(
'array',
'true');
98 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Object');
99 subParNodeAlpha.setAttribute(
'name',
'alpha');
100 subParNodeAlphaVec = simDoc.createElement(
'subParameter');
101 subParNodeAlphaVec.setAttribute(
'array',
'true');
102 subParNodeAlphaVec.setAttribute(
'classPath',
'java.lang.Object');
103 subParNodeAlphaVec.setAttribute(
'name',
'vector');
107 subParNodeAlphaElem = simDoc.createElement(
'subParameter');
108 subParNodeAlphaElem.setAttribute(
'classPath',
'java.lang.Double');
109 subParNodeAlphaElem.setAttribute(
'name',
'entry');
110 subParValue = simDoc.createElement(
'value');
111 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',alpha(k))));
112 subParNodeAlphaElem.appendChild(subParValue);
113 subParNodeAlphaVec.appendChild(subParNodeAlphaElem);
116 subParNodeT = simDoc.createElement(
'subParameter');
117 subParNodeT.setAttribute(
'array',
'true');
118 subParNodeT.setAttribute(
'classPath',
'java.lang.Object');
119 subParNodeT.setAttribute(
'name',
'T');
122 subParNodeTvec = simDoc.createElement(
'subParameter');
123 subParNodeTvec.setAttribute(
'array',
'true');
124 subParNodeTvec.setAttribute(
'classPath',
'java.lang.Object');
125 subParNodeTvec.setAttribute(
'name',
'vector');
127 subParNodeTElem = simDoc.createElement(
'subParameter');
128 subParNodeTElem.setAttribute(
'classPath',
'java.lang.Double');
129 subParNodeTElem.setAttribute(
'name',
'entry');
130 subParValue = simDoc.createElement(
'value');
132 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',-abs(T(k,j)))));
134 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',abs(T(k,j)))));
136 subParNodeTElem.appendChild(subParValue);
137 subParNodeTvec.appendChild(subParNodeTElem);
139 subParNodeT.appendChild(subParNodeTvec);
142 subParNodeAlpha.appendChild(subParNodeAlphaVec);
143 distrParNode.appendChild(subParNodeAlpha);
144 distrParNode.appendChild(subParNodeT);
145 serviceTimeStrategyNode.appendChild(distributionNode);
146 serviceTimeStrategyNode.appendChild(distrParNode);
147elseif procid_ir == ProcessType.MAP
148 serviceTimeStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy');
149 serviceTimeStrategyNode.setAttribute(
'name',
'ServiceTimeStrategy');
150 distributionNode = simDoc.createElement(
'subParameter');
151 distributionNode.setAttribute(
'classPath',
'jmt.engine.random.MAPDistr');
152 distributionNode.setAttribute(
'name',
'Burst (MAP)');
153 distrParNode = simDoc.createElement(
'subParameter');
154 distrParNode.setAttribute(
'classPath',
'jmt.engine.random.MAPPar');
155 distrParNode.setAttribute(
'name',
'distrPar');
159 subParNodeD0 = simDoc.createElement(
'subParameter');
160 subParNodeD0.setAttribute(
'array',
'true');
161 subParNodeD0.setAttribute(
'classPath',
'java.lang.Object');
162 subParNodeD0.setAttribute(
'name',
'D0');
165 subParNodeD0vec = simDoc.createElement(
'subParameter');
166 subParNodeD0vec.setAttribute(
'array',
'true');
167 subParNodeD0vec.setAttribute(
'classPath',
'java.lang.Object');
168 subParNodeD0vec.setAttribute(
'name',
'vector');
170 subParNodeD0Elem = simDoc.createElement(
'subParameter');
171 subParNodeD0Elem.setAttribute(
'classPath',
'java.lang.Double');
172 subParNodeD0Elem.setAttribute(
'name',
'entry');
173 subParValue = simDoc.createElement(
'value');
174 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',D0(k,j))));
175 subParNodeD0Elem.appendChild(subParValue);
176 subParNodeD0vec.appendChild(subParNodeD0Elem);
178 subParNodeD0.appendChild(subParNodeD0vec);
180 distrParNode.appendChild(subParNodeD0);
182 subParNodeD1 = simDoc.createElement(
'subParameter');
183 subParNodeD1.setAttribute(
'array',
'true');
184 subParNodeD1.setAttribute(
'classPath',
'java.lang.Object');
185 subParNodeD1.setAttribute(
'name',
'D1');
188 subParNodeD1vec = simDoc.createElement(
'subParameter');
189 subParNodeD1vec.setAttribute(
'array',
'true');
190 subParNodeD1vec.setAttribute(
'classPath',
'java.lang.Object');
191 subParNodeD1vec.setAttribute(
'name',
'vector');
193 subParNodeD1Elem = simDoc.createElement(
'subParameter');
194 subParNodeD1Elem.setAttribute(
'classPath',
'java.lang.Double');
195 subParNodeD1Elem.setAttribute(
'name',
'entry');
196 subParValue = simDoc.createElement(
'value');
197 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',D1(k,j))));
198 subParNodeD1Elem.appendChild(subParValue);
199 subParNodeD1vec.appendChild(subParNodeD1Elem);
201 subParNodeD1.appendChild(subParNodeD1vec);
203 distrParNode.appendChild(subParNodeD1);
204 serviceTimeStrategyNode.appendChild(distributionNode);
205 serviceTimeStrategyNode.appendChild(distrParNode);
207 serviceTimeStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy');
208 serviceTimeStrategyNode.setAttribute(
'name',
'ServiceTimeStrategy');
210 distributionNode = simDoc.createElement(
'subParameter');
213 javaClass =
'jmt.engine.random.DeterministicDistr';
214 javaParClass =
'jmt.engine.random.DeterministicDistrPar';
215 case ProcessType.COXIAN
216 javaClass =
'jmt.engine.random.CoxianDistr';
217 javaParClass =
'jmt.engine.random.CoxianPar';
218 case ProcessType.ERLANG
219 javaClass =
'jmt.engine.random.Erlang';
220 javaParClass =
'jmt.engine.random.ErlangPar';
222 javaClass =
'jmt.engine.random.Exponential';
223 javaParClass =
'jmt.engine.random.ExponentialPar';
224 case ProcessType.GAMMA
225 javaClass =
'jmt.engine.random.GammaDistr';
226 javaParClass =
'jmt.engine.random.GammaDistrPar';
227 case ProcessType.HYPEREXP
228 javaClass =
'jmt.engine.random.HyperExp';
229 javaParClass =
'jmt.engine.random.HyperExpPar';
230 case ProcessType.PARETO
231 javaClass =
'jmt.engine.random.Pareto';
232 javaParClass =
'jmt.engine.random.ParetoPar';
233 case ProcessType.WEIBULL
234 javaClass =
'jmt.engine.random.Weibull';
235 javaParClass =
'jmt.engine.random.WeibullPar';
236 case ProcessType.LOGNORMAL
237 javaClass =
'jmt.engine.random.Lognormal';
238 javaParClass =
'jmt.engine.random.LognormalPar';
239 case ProcessType.UNIFORM
240 javaClass =
'jmt.engine.random.Uniform';
241 javaParClass =
'jmt.engine.random.UniformPar';
242 case ProcessType.MMPP2
243 javaClass =
'jmt.engine.random.MMPP2Distr';
244 javaParClass =
'jmt.engine.random.MMPP2Par';
245 case {ProcessType.REPLAYER, ProcessType.TRACE}
246 javaClass =
'jmt.engine.random.Replayer';
247 javaParClass =
'jmt.engine.random.ReplayerPar';
249 distributionNode.setAttribute(
'classPath', javaClass);
251 case {ProcessType.REPLAYER, ProcessType.TRACE}
252 distributionNode.setAttribute(
'name',
'Replayer');
254 distributionNode.setAttribute(
'name',
'Exponential');
255 case ProcessType.HYPEREXP
256 distributionNode.setAttribute(
'name',
'Hyperexponential');
258 distributionNode.setAttribute(
'name', ProcessType.toText(ProcessType.fromId(procid_ir)));
260 serviceTimeStrategyNode.appendChild(distributionNode);
262 distrParNode = simDoc.createElement(
'subParameter');
263 distrParNode.setAttribute(
'classPath', javaParClass);
264 distrParNode.setAttribute(
'name',
'distrPar');
268 subParNodeAlpha = simDoc.createElement(
'subParameter');
269 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
270 subParNodeAlpha.setAttribute(
'name',
't');
271 subParValue = simDoc.createElement(
'value');
272 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',1/rates_ir)));
273 subParNodeAlpha.appendChild(subParValue);
274 distrParNode.appendChild(subParNodeAlpha);
276 subParNodeAlpha = simDoc.createElement(
'subParameter');
277 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
278 subParNodeAlpha.setAttribute(
'name',
'lambda');
279 subParValue = simDoc.createElement(
'value');
280 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',rates_ir)));
281 subParNodeAlpha.appendChild(subParValue);
282 distrParNode.appendChild(subParNodeAlpha);
283 case ProcessType.HYPEREXP
284 subParNodeAlpha = simDoc.createElement(
'subParameter');
285 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
286 subParNodeAlpha.setAttribute(
'name',
'p');
287 subParValue = simDoc.createElement(
'value');
288 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',pie_ir(1))));
289 subParNodeAlpha.appendChild(subParValue);
290 distrParNode.appendChild(subParNodeAlpha);
291 subParNodeAlpha = simDoc.createElement(
'subParameter');
292 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
293 subParNodeAlpha.setAttribute(
'name',
'lambda1');
294 subParValue = simDoc.createElement(
'value');
295 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',-proc_ir{1}(1,1))));
296 subParNodeAlpha.appendChild(subParValue);
297 distrParNode.appendChild(subParNodeAlpha);
298 subParNodeAlpha = simDoc.createElement(
'subParameter');
299 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
300 subParNodeAlpha.setAttribute(
'name',
'lambda2');
301 subParValue = simDoc.createElement(
'value');
302 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',-proc_ir{1}(2,2))));
303 subParNodeAlpha.appendChild(subParValue);
304 distrParNode.appendChild(subParNodeAlpha);
305 case ProcessType.ERLANG
306 subParNodeAlpha = simDoc.createElement(
'subParameter');
307 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
308 subParNodeAlpha.setAttribute(
'name',
'alpha');
309 subParValue = simDoc.createElement(
'value');
310 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',rates_ir*phases_ir)));
311 subParNodeAlpha.appendChild(subParValue);
312 distrParNode.appendChild(subParNodeAlpha);
313 subParNodeAlpha = simDoc.createElement(
'subParameter');
314 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Long');
315 subParNodeAlpha.setAttribute(
'name',
'r');
316 subParValue = simDoc.createElement(
'value');
317 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%d',phases_ir)));
318 subParNodeAlpha.appendChild(subParValue);
319 distrParNode.appendChild(subParNodeAlpha);
320 case ProcessType.MMPP2
321 subParNodeAlpha = simDoc.createElement(
'subParameter');
322 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
323 subParNodeAlpha.setAttribute(
'name',
'lambda0');
324 subParValue = simDoc.createElement(
'value');
325 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',proc_ir{2}(1,1))));
326 subParNodeAlpha.appendChild(subParValue);
327 distrParNode.appendChild(subParNodeAlpha);
328 subParNodeAlpha = simDoc.createElement(
'subParameter');
329 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
330 subParNodeAlpha.setAttribute(
'name',
'lambda1');
331 subParValue = simDoc.createElement(
'value');
332 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',proc_ir{2}(2,2))));
333 subParNodeAlpha.appendChild(subParValue);
334 distrParNode.appendChild(subParNodeAlpha);
335 subParNodeAlpha = simDoc.createElement(
'subParameter');
336 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
337 subParNodeAlpha.setAttribute(
'name',
'sigma0');
338 subParValue = simDoc.createElement(
'value');
339 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',proc_ir{1}(1,2))));
340 subParNodeAlpha.appendChild(subParValue);
341 distrParNode.appendChild(subParNodeAlpha);
342 subParNodeAlpha = simDoc.createElement(
'subParameter');
343 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
344 subParNodeAlpha.setAttribute(
'name',
'sigma1');
345 subParValue = simDoc.createElement(
'value');
346 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',proc_ir{1}(2,1))));
347 subParNodeAlpha.appendChild(subParValue);
348 distrParNode.appendChild(subParNodeAlpha);
349 case ProcessType.GAMMA
350 subParNodeAlpha = simDoc.createElement(
'subParameter');
351 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
352 subParNodeAlpha.setAttribute(
'name',
'alpha');
353 subParValue = simDoc.createElement(
'value');
354 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',1/scv_ir)));
355 subParNodeAlpha.appendChild(subParValue);
356 distrParNode.appendChild(subParNodeAlpha);
357 subParNodeAlpha = simDoc.createElement(
'subParameter');
358 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
359 subParNodeAlpha.setAttribute(
'name',
'beta');
360 subParValue = simDoc.createElement(
'value');
361 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',scv_ir/rates_ir)));
362 subParNodeAlpha.appendChild(subParValue);
363 distrParNode.appendChild(subParNodeAlpha);
364 case ProcessType.PARETO
365 shape = sqrt(1+1/scv_ir)+1;
366 scale = 1/rates_ir * (shape - 1) / shape;
367 subParNodeAlpha = simDoc.createElement(
'subParameter');
368 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
369 subParNodeAlpha.setAttribute(
'name',
'alpha'); % shape
370 subParValue = simDoc.createElement(
'value');
371 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',shape)));
372 subParNodeAlpha.appendChild(subParValue);
373 distrParNode.appendChild(subParNodeAlpha);
374 subParNodeAlpha = simDoc.createElement(
'subParameter');
375 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.Double');
376 subParNodeAlpha.setAttribute(
'name',
'k'); % scale
377 subParValue = simDoc.createElement(
'value');
378 subParValue.appendChild(simDoc.createTextNode(sprintf(
'%.12f',scale)));
379 subParNodeAlpha.appendChild(subParValue);
380 distrParNode.appendChild(subParNodeAlpha);
381 case ProcessType.WEIBULL
383 rval = c^(-1.086); % Justus approximation (1976)
384 alpha = 1/rates_ir / gamma(1+1/rval);
385 subParNodeAlpha = simDoc.createElement('subParameter');
386 subParNodeAlpha.setAttribute('classPath', 'java.lang.Double');
387 subParNodeAlpha.setAttribute('name', 'alpha'); % shape
388 subParValue = simDoc.createElement('value');
389 subParValue.appendChild(simDoc.createTextNode(sprintf('%.12f',alpha)));
390 subParNodeAlpha.appendChild(subParValue);
391 distrParNode.appendChild(subParNodeAlpha);
392 subParNodeAlpha = simDoc.createElement('subParameter');
393 subParNodeAlpha.setAttribute('classPath', 'java.lang.Double');
394 subParNodeAlpha.setAttribute('name', 'r'); % scale
395 subParValue = simDoc.createElement('value');
396 subParValue.appendChild(simDoc.createTextNode(sprintf('%.12f',rval)));
397 subParNodeAlpha.appendChild(subParValue);
398 distrParNode.appendChild(subParNodeAlpha);
399 case ProcessType.LOGNORMAL
401 mu = log(1/rates_ir / sqrt(c*c + 1));
402 sigma = sqrt(log(c*c + 1));
403 subParNodeAlpha = simDoc.createElement('subParameter');
404 subParNodeAlpha.setAttribute('classPath', 'java.lang.Double');
405 subParNodeAlpha.setAttribute('name', 'mu'); % shape
406 subParValue = simDoc.createElement('value');
407 subParValue.appendChild(simDoc.createTextNode(sprintf('%.12f',mu)));
408 subParNodeAlpha.appendChild(subParValue);
409 distrParNode.appendChild(subParNodeAlpha);
410 subParNodeAlpha = simDoc.createElement('subParameter');
411 subParNodeAlpha.setAttribute('classPath', 'java.lang.Double');
412 subParNodeAlpha.setAttribute('name', 'sigma'); % scale
413 subParValue = simDoc.createElement('value');
414 subParValue.appendChild(simDoc.createTextNode(sprintf('%.12f',sigma)));
415 subParNodeAlpha.appendChild(subParValue);
416 distrParNode.appendChild(subParNodeAlpha);
417 case ProcessType.UNIFORM
418 maxVal = ((sqrt(12*scv_ir/rates_ir^2))+2/rates_ir)/2;
419 minVal = 2/rates_ir-maxVal;
420 subParNodeAlpha = simDoc.createElement('subParameter');
421 subParNodeAlpha.setAttribute('classPath', 'java.lang.Double');
422 subParNodeAlpha.setAttribute('name', 'min'); % shape
423 subParValue = simDoc.createElement('value');
424 subParValue.appendChild(simDoc.createTextNode(sprintf('%.12f',minVal)));
425 subParNodeAlpha.appendChild(subParValue);
426 distrParNode.appendChild(subParNodeAlpha);
427 subParNodeAlpha = simDoc.createElement('subParameter');
428 subParNodeAlpha.setAttribute('classPath', 'java.lang.Double');
429 subParNodeAlpha.setAttribute('name', 'max'); % scale
430 subParValue = simDoc.createElement('value');
431 subParValue.appendChild(simDoc.createTextNode(sprintf('%.12f',maxVal)));
432 subParNodeAlpha.appendChild(subParValue);
433 distrParNode.appendChild(subParNodeAlpha);
434 case {ProcessType.REPLAYER, ProcessType.TRACE}
435 subParNodeAlpha = simDoc.createElement(
'subParameter');
436 subParNodeAlpha.setAttribute(
'classPath',
'java.lang.String');
437 subParNodeAlpha.setAttribute(
'name',
'fileName');
438 subParValue = simDoc.createElement(
'value');
439 subParValue.appendChild(simDoc.createTextNode(sn.nodeparam{ind}{r}.fileName));
440 subParNodeAlpha.appendChild(subParValue);
441 distrParNode.appendChild(subParNodeAlpha);
443 serviceTimeStrategyNode.appendChild(distrParNode);