2function [simDoc, section] = saveInhibitingConditions(self, simDoc, section, ind)
3% [SIMDOC, SECTION] = SAVEINHIBITINGCONDITIONS(SIMDOC, SECTION, NODEIDX)
5% Copyright (c) 2012-2026, Imperial College London
8inhibitingConditionsNode = simDoc.createElement(
'parameter');
9inhibitingConditionsNode.setAttribute(
'array',
'true');
10inhibitingConditionsNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.TransitionUtilities.TransitionMatrix');
11inhibitingConditionsNode.setAttribute(
'name',
'inhibitingConditions');
14inputs = [find(sn.connmatrix(:,ind))];
15connections = {sn.nodenames{inputs}};
16numOfInputs = length(connections);
18numOfClasses = sn.nclasses;
19numOfModes = sn.nodeparam{ind}.nmodes;
21 subInhibitingConditionNode = simDoc.createElement(
'subParameter');
22 subInhibitingConditionNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.TransitionUtilities.TransitionMatrix');
23 subInhibitingConditionNode.setAttribute(
'name',
'inhibitingCondition');
25 subInhibitingVectorsNode = simDoc.createElement(
'subParameter');
26 subInhibitingVectorsNode.setAttribute(
'array',
'true');
27 subInhibitingVectorsNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.TransitionUtilities.TransitionVector');
28 subInhibitingVectorsNode.setAttribute(
'name',
'inhibitingVectors');
31 subInhibitingVectorNode = simDoc.createElement(
'subParameter');
32 subInhibitingVectorNode.setAttribute(
'classPath',
'jmt.engine.NetStrategies.TransitionUtilities.TransitionVector');
33 subInhibitingVectorNode.setAttribute(
'name',
'inhibitingVector');
35 subStationNameNode = simDoc.createElement(
'subParameter');
36 subStationNameNode.setAttribute(
'classPath',
'java.lang.String');
37 subStationNameNode.setAttribute(
'name',
'stationName');
39 placeNameValueNode = simDoc.createElement(
'value');
40 placeNameValueNode.appendChild(simDoc.createTextNode(connections(k)));
41 subStationNameNode.appendChild(placeNameValueNode);
43 subInhibitingVectorNode.appendChild(subStationNameNode);
45 subInhibitingEntriesNode = simDoc.createElement(
'subParameter');
46 subInhibitingEntriesNode.setAttribute(
'array',
'true');
47 subInhibitingEntriesNode.setAttribute(
'classPath',
'java.lang.Integer');
48 subInhibitingEntriesNode.setAttribute(
'name',
'inhibitingEntries');
51 refClassNode = simDoc.createElement(
'refClass');
52 refClassNode.appendChild(simDoc.createTextNode(sn.classnames{r}));
53 subInhibitingEntriesNode.appendChild(refClassNode);
55 subParameterNode = simDoc.createElement(
'subParameter');
56 subParameterNode.setAttribute(
'classPath',
'java.lang.Integer');
57 subParameterNode.setAttribute(
'name',
'inhibitingEntry');
59 valueNode2 = simDoc.createElement(
'value');
61 if isinf(sn.nodeparam{ind}.inhibiting{m}(inputs(k),r))
62 valueNode2.appendChild(simDoc.createTextNode(int2str(0)));
64 valueNode2.appendChild(simDoc.createTextNode(int2str(sn.nodeparam{ind}.inhibiting{m}(inputs(k),r))));
67 subParameterNode.appendChild(valueNode2);
68 subInhibitingEntriesNode.appendChild(subParameterNode);
69 subInhibitingVectorNode.appendChild(subInhibitingEntriesNode);
71 subInhibitingVectorsNode.appendChild(subInhibitingVectorNode);
74 subInhibitingConditionNode.appendChild(subInhibitingVectorsNode);
75 inhibitingConditionsNode.appendChild(subInhibitingConditionNode);
78section.appendChild(inhibitingConditionsNode);