1function used = getUsedLangFeatures(self)
2% USED = GETUSEDLANGFEATURES()
4% Copyright (c) 2012-2026, Imperial College London
8if ~isempty(self.getIndexClosedClasses)
9 self.setUsedLangFeature('ClosedClass');
11if ~isempty(self.getIndexOpenClasses)
12 self.setUsedLangFeature('OpenClass');
16for i=1:getNumberOfNodes(self)
17 for r=1:getNumberOfClasses(self)
19 switch class(self.
nodes{i})
20 case {
'Queue',
'QueueingStation',
'DelayStation',
'Delay'}
21 if ~isempty(self.nodes{i}.server.serviceProcess{r})
22 self.setUsedLangFeature(self.
nodes{i}.server.serviceProcess{r}{3}.name);
23 if self.nodes{i}.numberOfServers > 1
24 %self.setUsedLangFeature(
'MultiServer')
26 self.setUsedLangFeature(SchedStrategy.toFeature(self.nodes{i}.schedStrategy));
27 self.setUsedLangFeature(RoutingStrategy.toFeature(self.nodes{i}.output.outputStrategy{r}{2}));
30 self.setUsedLangFeature(RoutingStrategy.toFeature(self.nodes{i}.output.outputStrategy{r}{2}));
32 self.setUsedLangFeature(self.nodes{i}.input.sourceClasses{r}{3}.name);
33 self.setUsedLangFeature(
'Source');
35 self.setUsedLangFeature(
'StatelessClassSwitcher');
36 self.setUsedLangFeature(
'ClassSwitch');
38 self.setUsedLangFeature(
'Fork');
39 self.setUsedLangFeature(
'Forker');
41 self.setUsedLangFeature(
'Join');
42 self.setUsedLangFeature(
'Joiner');
44 self.setUsedLangFeature(
'Sink');
46 self.setUsedLangFeature(
'CacheClassSwitcher');
47 self.setUsedLangFeature(
'Cache');
48 self.setUsedLangFeature(ReplacementStrategy.toFeature(self.nodes{i}.replacestrategy));
50 self.setUsedLangFeature(
'Transition');
51 self.setUsedLangFeature(
'Enabling');
52 self.setUsedLangFeature(
'Timing');
53 self.setUsedLangFeature(
'Firing');
55 self.setUsedLangFeature(
'Storage');
56 self.setUsedLangFeature(
'Linkage');
57 self.setUsedLangFeature(
'Place');
62used = self.usedFeatures;