Skip to content

Package: MittelfristigePlanung$SZENARIO

MittelfristigePlanung$SZENARIO

nameinstructionbranchcomplexitylinemethod
static {...}
M: 0 C: 34
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

1: package planung;
2:
3: import auftraege.ProduktionsAuftrag;
4:
5: import java.util.ArrayList;
6: import java.util.Collection;
7: import java.util.HashMap;
8: import java.util.List;
9: import java.util.Map;
10:
11: /**
12: * eine Mittelfristige Planung besteht im großen und Ganzen aus zwei Szenarien. Dem {@link MittelfristigePlanung#schichtenBestCase BestCase-} und dem {@link
13: * MittelfristigePlanung#schichtenWorstCase Worst-Case Szenario}.
14: * <p>
15: * Diese beiden Szenarien bestehen jeweils aus einer Liste von {@link Schicht Schichten}.
16: * <p>
17: * Bei der Planung kann es passieren, dass Produktionsaufträge nicht bearbeitet werden können oder dass ihr {@link auftraege.ServiceLevelAgreement SLA} nicht
18: * eingehalten werden kann. In diesem Fall kommen sie mit einer Begründung in die Map {@link MittelfristigePlanung#uebrigBestCase} bzw. {@link
19: * MittelfristigePlanung#uebrigWorstCase}.
20: */
21: public final class MittelfristigePlanung {
22:         public static final MittelfristigePlanung EMPTY =
23:                         MittelfristigePlanung.create(new ArrayList<>(), new HashMap<>(), new ArrayList<>(), new HashMap<>(), new ArrayList<>(), new HashMap<>());
24:         /**
25:          * Schichten, so wie sie im BestCase-Szenario auftreten könnten.
26:          */
27:         private final List<Schicht> schichtenBestCase;
28:         /**
29:          * Schichten, so wie sie im AverageCase-Szenario auftreten könnten.
30:          */
31:         private final List<Schicht> schichtenAverageCase;
32:         /**
33:          * Schichten, so wie sie im WorstCase-Szenario auftreten könnten.
34:          */
35:         private final List<Schicht> schichtenWorstCase;
36:         /**
37:          * Map von {@link ProduktionsAuftrag Produktionsaufträgen} zu {@link Begruendung Begründungen} mit Produktionsaufträgen, die laut der Planung im BestCase nicht
38:          * bearbeitet werden können.
39:          */
40:         private final Map<ProduktionsAuftrag, Begruendung> uebrigBestCase;
41:         /**
42:          * Map von {@link ProduktionsAuftrag Produktionsaufträgen} zu {@link Begruendung Begründungen} mit Produktionsaufträgen, die laut der Planung im AverageCase nicht
43:          * bearbeitet werden können.
44:          */
45:         private final Map<ProduktionsAuftrag, Begruendung> uebrigAverageCase;
46:         /**
47:          * Map von {@link ProduktionsAuftrag Produktionsaufträgen} zu {@link Begruendung Begründungen} mit Produktionsaufträgen, die laut der Planung im WorstCase nicht
48:          * bearbeitet werden können.
49:          */
50:         private final Map<ProduktionsAuftrag, Begruendung> uebrigWorstCase;
51:
52:         private MittelfristigePlanung(
53:                         final List<Schicht> schichtenBestCase,
54:                         final Map<ProduktionsAuftrag, Begruendung> uebrigeBestCase,
55:                         final List<Schicht> schichtenAverageCase,
56:                         final Map<ProduktionsAuftrag, Begruendung> uebrigAverageCase,
57:                         final List<Schicht> schichtenWorstCase,
58:                         final Map<ProduktionsAuftrag, Begruendung> uebrigeWorstCase) {
59:                 this.schichtenBestCase = schichtenBestCase;
60:                 this.uebrigBestCase = uebrigeBestCase;
61:                 this.schichtenAverageCase = schichtenAverageCase;
62:                 this.uebrigAverageCase = uebrigAverageCase;
63:                 this.schichtenWorstCase = schichtenWorstCase;
64:                 this.uebrigWorstCase = uebrigeWorstCase;
65:         }
66:
67:         /**
68:          * @param schichtenBestCase
69:          *                 {@link MittelfristigePlanung#schichtenBestCase}
70:          * @param uebrigBestCase
71:          *                 {@link MittelfristigePlanung#uebrigBestCase}
72:          * @param schichtenAverageCase
73:          *                 {@link MittelfristigePlanung#schichtenAverageCase}
74:          * @param uebrigAverageCase
75:          *                 {@link MittelfristigePlanung#uebrigAverageCase}
76:          * @param schichtenWorstCase
77:          *                 {@link MittelfristigePlanung#schichtenWorstCase}
78:          * @param uebrigWorstCase
79:          *                 {@link MittelfristigePlanung#uebrigWorstCase}
80:          *
81:          * @return erstellt eine Mittelfristige Planung mit den übergebenen Parametern.
82:          */
83:         public static MittelfristigePlanung create(
84:                         final List<Schicht> schichtenBestCase,
85:                         final Map<ProduktionsAuftrag, Begruendung> uebrigBestCase,
86:                         final List<Schicht> schichtenAverageCase,
87:                         final Map<ProduktionsAuftrag, Begruendung> uebrigAverageCase,
88:                         final List<Schicht> schichtenWorstCase,
89:                         final Map<ProduktionsAuftrag, Begruendung> uebrigWorstCase
90:         ) {
91:                 return new MittelfristigePlanung(schichtenBestCase, uebrigBestCase, schichtenAverageCase, uebrigAverageCase, schichtenWorstCase, uebrigWorstCase);
92:         }
93:
94:         /**
95:          * @return {@link MittelfristigePlanung#schichtenBestCase}.
96:          */
97:         public Collection<Schicht> getSchichtenBestCase() {
98:                 return this.schichtenBestCase;
99:         }
100:
101:         /**
102:          * @return {@link MittelfristigePlanung#schichtenAverageCase}.
103:          */
104:         public List<Schicht> getSchichtenAverageCase() {
105:                 return this.schichtenAverageCase;
106:         }
107:
108:         /**
109:          * @return {@link MittelfristigePlanung#schichtenWorstCase}.
110:          */
111:         public Collection<Schicht> getSchichtenWorstCase() {
112:                 return this.schichtenWorstCase;
113:         }
114:
115:         /**
116:          * @return {@link MittelfristigePlanung#uebrigBestCase}.
117:          */
118:         public Map<ProduktionsAuftrag, Begruendung> getUebrigBestCase() {
119:                 return this.uebrigBestCase;
120:         }
121:
122:         /**
123:          * @return {@link MittelfristigePlanung#uebrigAverageCase}.
124:          */
125:         public Map<ProduktionsAuftrag, Begruendung> getUebrigAverageCase() {
126:                 return this.uebrigAverageCase;
127:         }
128:
129:         /**
130:          * @return {@link MittelfristigePlanung#uebrigWorstCase}.
131:          */
132:         public Map<ProduktionsAuftrag, Begruendung> getUebrigWorstCase() {
133:                 return this.uebrigWorstCase;
134:         }
135:
136:
137:         /**
138:          * Es gibt die Szenarien, welche hier beschrieben werden.
139:          */
140:         public enum SZENARIO {
141:                 WorstCase, AverageCase, BestCase
142:         }
143: }