LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
JLayeredNetwork.m
1classdef JLayeredNetwork < Model
2 % JLINE extended layered queueing network model.
3 %
4 % Copyright (c) 2012-2026, Imperial College London
5 % All rights reserved.
6
7 properties (Access=public)
8 obj; % java object
9 end
10
11 % PUBLIC METHODS
12 methods (Access=public)
13
14 %Constructor
15 function self = JLayeredNetwork(name)
16 % SELF = JLAYEREDNETWORK(MODELNAME)
17 self@Model(name); % model is the model's name
18 self.obj = jline.lang.layered.LayeredNetwork(name);
19 end
20
21 function lqn = getStruct(self, wantInitialState) % get arbitrary representation
22 if nargin<2
23 wantInitialState = false;
24 end
25 lqn = JLINE.from_jline_layered_struct(self.obj, self.obj.getStruct(wantInitialState));
26 end
27
28 function E = getNumberOfLayers(self)
29 % E = GETNUMBEROFLAYERS()
30 E = self.obj.getNumberOfLayers();
31 end
32
33 function E = getNumberOfModels(self)
34 % E = GETNUMBEROFMODELS()
35 E = self.obj.getNumberOfModels();
36 end
37
38 function H = getNumberOfHosts(self)
39 % H = GETNUMBEROFHOSTS()
40 H = self.obj.getNumberOfHosts();
41 end
42
43 function T = getNumberOfTasks(self)
44 % T = GETNUMBEROFTASKS()
45 T = self.obj.getNumberOfTasks();
46 end
47
48 function E = getNumberOfEntries(self)
49 % E = GETNUMBEROFENTRIES()
50 E = self.obj.getNumberOfEntries();
51 end
52
53 function A = getNumberOfActivities(self)
54 % A = GETNUMBEROFACTIVITIES()
55 A = self.obj.getNumberOfActivities();
56 end
57
58 function ind = getNodeIndex(self, name)
59 if ischar(name)
60 ind = self.obj.getNodeByName(name);
61 else
62 ind = self.obj.getNodeIndex(name.obj);
63 end
64 end
65
66 function node = getNodeByName(self, name)
67 % NODE = GETNODEBYNAME(NAME)
68
69 javaNode = self.obj.getNodeByName(name);
70 if isempty(javaNode)
71 node = NaN;
72 else
73 % Create a wrapper MATLAB object for the Java node
74 % We need to determine the node type and create appropriate wrapper
75 nodeClassName = char(javaNode.getClass().getSimpleName());
76 switch nodeClassName
77 case 'Host'
78 node = Host(self, char(javaNode.getName()));
79 node.obj = javaNode;
80 case 'Processor'
81 node = Processor(self, char(javaNode.getName()));
82 node.obj = javaNode;
83 case 'Task'
84 node = Task(self, char(javaNode.getName()));
85 node.obj = javaNode;
86 case 'CacheTask'
87 node = CacheTask(self, char(javaNode.getName()));
88 node.obj = javaNode;
89 case 'FunctionTask'
90 node = FunctionTask(self, char(javaNode.getName()));
91 node.obj = javaNode;
92 case 'Entry'
93 node = Entry(self, char(javaNode.getName()));
94 node.obj = javaNode;
95 case 'ItemEntry'
96 node = ItemEntry(self, char(javaNode.getName()));
97 node.obj = javaNode;
98 case 'Activity'
99 node = Activity(self, char(javaNode.getName()));
100 node.obj = javaNode;
101 otherwise
102 % Fallback - create generic LayeredNetworkElement wrapper
103 node = LayeredNetworkElement(char(javaNode.getName()));
104 node.obj = javaNode;
105 node.model = self;
106 end
107 end
108 end
109
110 function self = addHost(self, host)
111 % SELF = ADDHOST(HOST)
112 self.obj.addHost(host.obj);
113 end
114
115 function self = addTask(self, task)
116 % SELF = ADDTASK(TASK)
117 self.obj.addTask(task.obj);
118 end
119
120 function self = addEntry(self, entry)
121 % SELF = ADDENTRY(ENTRY)
122 self.obj.addEntry(entry.obj);
123 end
124
125 function self = addActivity(self, activity)
126 % SELF = ADDACTIVITY(ACTIVITY)
127 self.obj.addActivity(activity.obj);
128 end
129
130 function reset(self)
131 self.obj.reset();
132 end
133
134 function sanitize(self)
135 % SANITIZE()
136 % Validates the LayeredNetwork configuration.
137 % Ensures that if entries are defined, activities are also defined to serve those entries.
138 self.obj.sanitize();
139 end
140
141 function writeXML(self, filename)
142 % WRITEXML(FILENAME)
143 self.obj.writeXML(filename);
144 end
145
146 end
147
148 methods (Static)
149
150 function model = parseXML(filename)
151 % MODEL = PARSEXML(FILENAME)
152 javaModel = jline.lang.layered.LayeredNetwork.parseXML(filename);
153 model = JLayeredNetwork(char(javaModel.getName()));
154 model.obj = javaModel;
155 end
156
157 end
158end