LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
Joiner.m
1classdef Joiner < InputSection
2 % An input section that joins siblings tasks
3 %
4 % Copyright (c) 2012-2026, Imperial College London
5 % All rights reserved.
6
7 properties
8 joinStrategy;
9 joinRequired;
10 joinJobClasses;
11 end
12
13 methods
14 %Constructor
15 function self = Joiner(customerClasses)
16 % SELF = JOINER(CUSTOMERCLASSES)
17
18 self@InputSection('Joiner');
19 self.joinJobClasses = {};
20 initJoinJobClasses(self, customerClasses);
21 end
22 end
23
24 methods (Access = 'public')
25
26 function setRequired(self, customerClass, nJobs)
27 % SETREQUIRED(CUSTOMERCLASS, NJOBS)
28
29 self.joinRequired{customerClass.index} = nJobs;
30 end
31
32 function setStrategy(self, customerClass, joinStrat)
33 % SETSTRATEGY(CUSTOMERCLASS, JOINSTRAT)
34
35 self.joinJobClasses{customerClass.index} = customerClass;
36 self.joinStrategy{customerClass.index} = joinStrat;
37 end
38
39 function initJoinJobClasses(self, customerClasses)
40 % INITJOINJOBCLASSES(CUSTOMERCLASSES)
41
42 for i = 1 : length(customerClasses)
43 self.joinJobClasses{i} = customerClasses{i};
44 self.joinRequired{i} = -1;
45 self.joinStrategy{i} = JoinStrategy.STD;
46 end
47 end
48 end
49
50 methods(Access = protected)
51 % Override copyElement method:
52 function clone = copyElement(self)
53 % CLONE = COPYELEMENT()
54
55 % Make a shallow copy of all properties
56 clone = copyElement@Copyable(self);
57 % Make a deep copy of each object
58 for i=1:length(self.joinJobClasses)
59 clone.joinJobClasses{i} = self.joinJobClasses{i}.copy;
60 end
61 end
62 end
63
64end
65