1function [simDoc, section] = saveJoinStrategy(self, simDoc, section, ind)
2% [SIMDOC, SECTION] = SAVEJOINSTRATEGY(SIMDOC, SECTION, NODEIDX)
4% Copyright (c) 2012-2026, Imperial College London
6strategyNode = simDoc.createElement(
'parameter');
7strategyNode.setAttribute(
'array',
'true');
8strategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.JoinStrategy');
9strategyNode.setAttribute(
'name',
'JoinStrategy');
12numOfClasses = sn.nclasses;
14 switch sn.nodeparam{ind}.joinStrategy{r}
16 refClassNode2 = simDoc.createElement(
'refClass');
17 refClassNode2.appendChild(simDoc.createTextNode(sn.classnames{r}));
18 strategyNode.appendChild(refClassNode2);
20 joinStrategyNode = simDoc.createElement(
'subParameter');
21 joinStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.JoinStrategies.NormalJoin');
22 joinStrategyNode.setAttribute(
'name',
'Standard Join');
23 reqNode = simDoc.createElement(
'subParameter');
24 reqNode.setAttribute(
'classPath',
'java.lang.Integer');
25 reqNode.setAttribute(
'name',
'numRequired');
26 valueNode = simDoc.createElement(
'value');
27 valueNode.appendChild(simDoc.createTextNode(int2str(sn.nodeparam{ind}.fanIn{r})));
28 reqNode.appendChild(valueNode);
29 joinStrategyNode.appendChild(reqNode);
30 strategyNode.appendChild(joinStrategyNode);
31 section.appendChild(strategyNode);
32 case JoinStrategy.PARTIAL
33 refClassNode2 = simDoc.createElement(
'refClass');
34 refClassNode2.appendChild(simDoc.createTextNode(sn.classnames{r}));
35 strategyNode.appendChild(refClassNode2);
37 joinStrategyNode = simDoc.createElement(
'subParameter');
38 joinStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.JoinStrategies.PartialJoin');
39 joinStrategyNode.setAttribute(
'name',
'Quorum');
40 reqNode = simDoc.createElement(
'subParameter');
41 reqNode.setAttribute(
'classPath',
'java.lang.Integer');
42 reqNode.setAttribute(
'name',
'numRequired');
43 valueNode = simDoc.createElement(
'value');
44 valueNode.appendChild(simDoc.createTextNode(int2str(sn.nodeparam{ind}.joinRequired{r})));
45 reqNode.appendChild(valueNode);
46 joinStrategyNode.appendChild(reqNode);
47 strategyNode.appendChild(joinStrategyNode);
48 section.appendChild(strategyNode);
49 %
case JoinStrategy.Guard
50 % refClassNode2 = simDoc.createElement(
'refClass');
51 % refClassNode2.appendChild(simDoc.createTextNode(sn.classnames{r}));
52 % strategyNode.appendChild(refClassNode2);
54 % joinStrategyNode = simDoc.createElement(
'subParameter');
55 % joinStrategyNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.JoinStrategies.PartialJoin');
56 % joinStrategyNode.setAttribute(
'name',
'Quorum');
57 % reqNode = simDoc.createElement(
'subParameter');
58 % reqNode.setAttribute(
'classPath',
'java.lang.Integer');
59 % reqNode.setAttribute(
'name',
'numRequired');
60 % valueNode = simDoc.createElement(
'value');
61 % valueNode.appendChild(simDoc.createTextNode(int2str(sn.nodeparam{ind}.joinRequired{r})));
62 % reqNode.appendChild(valueNode);
63 % joinStrategyNode.appendChild(reqNode);
64 % strategyNode.appendChild(joinStrategyNode);
65 % section.appendChild(strategyNode);