LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
saveServerCompatibilities.m
1function [simDoc, section] = saveServerCompatibilities(self, simDoc, section, ind)
2% [SIMDOC, SECTION] = SAVESERVERCOMPATIBILITIES(SIMDOC, SECTION, IND)
3% Saves server-class compatibility matrix to JMT XML.
4% Generates the serverCompatibilities parameter array.
5%
6% Copyright (c) 2012-2026, Imperial College London
7% All rights reserved.
8
9sn = self.getStruct;
10ist = sn.nodeToStation(ind);
11
12% Check if this station has heterogeneous servers
13if isempty(sn.nservertypes) || sn.nservertypes(ist) == 0
14 return;
15end
16
17% Get compatibility matrix for this station
18if isempty(sn.servercompat) || ist > length(sn.servercompat)
19 return;
20end
21
22compat = sn.servercompat{ist};
23if isempty(compat)
24 return;
25end
26
27[nTypes, nClasses] = size(compat);
28
29% Create serverCompatibilities parameter array
30compatNode = simDoc.createElement('parameter');
31compatNode.setAttribute('classPath', 'java.lang.Object');
32compatNode.setAttribute('name', 'serverCompatibilities');
33compatNode.setAttribute('array', 'true');
34
35% For each server type
36for t = 1:nTypes
37 typeNode = simDoc.createElement('subParameter');
38 typeNode.setAttribute('classPath', 'java.lang.Boolean');
39 typeNode.setAttribute('name', 'serverTypesCompatibilities');
40 typeNode.setAttribute('array', 'true');
41
42 % For each class
43 for r = 1:nClasses
44 classNode = simDoc.createElement('subParameter');
45 classNode.setAttribute('classPath', 'java.lang.Boolean');
46 classNode.setAttribute('name', 'compatibilities');
47
48 valueNode = simDoc.createElement('value');
49 if compat(t, r) > 0
50 valueNode.appendChild(simDoc.createTextNode('true'));
51 else
52 valueNode.appendChild(simDoc.createTextNode('false'));
53 end
54 classNode.appendChild(valueNode);
55 typeNode.appendChild(classNode);
56 end
57 compatNode.appendChild(typeNode);
58end
59
60section.appendChild(compatNode);
61end