Skip to contentMethod: getBeilagenKonfiguration()
      1: package zeit.eintraege;
2: 
3: import auftraege.ProduktionsAuftrag;
4: import maschine.BegrenzteBeilagenArten;
5: import tec.uom.se.ComparableQuantity;
6: 
7: import javax.measure.quantity.Time;
8: import java.time.LocalDateTime;
9: 
10: /**
11:  * Repräsentiert die Belegung einer Maschine für die Produktionsplanung.
12:  */
13: public final class MaschinenBelegungEintrag extends BelegungsEintrag {
14:         private final BegrenzteBeilagenArten beilagenKonfiguration;
15: 
16: 
17:         private MaschinenBelegungEintrag(final LocalDateTime startZeitpunkt,
18:                                          final ComparableQuantity<Time> dauer,
19:                                          final ProduktionsAuftrag zuVerarbeitenderAuftrag,
20:                                          final BegrenzteBeilagenArten beilagenKonfiguration) {
21:                 super(startZeitpunkt, dauer, zuVerarbeitenderAuftrag);
22:                 this.beilagenKonfiguration = beilagenKonfiguration;
23:         }
24: 
25:         private MaschinenBelegungEintrag(final LocalDateTime startZeitpunkt,
26:                                          final LocalDateTime endeZeitpunkt,
27:                                          final ProduktionsAuftrag zuVerarbeitenderAuftrag,
28:                                          final BegrenzteBeilagenArten beilagenKonfiguration) {
29:                 super(startZeitpunkt, endeZeitpunkt, zuVerarbeitenderAuftrag);
30:                 this.beilagenKonfiguration = beilagenKonfiguration;
31:         }
32: 
33:         /**
34:          * @param startZeitpunkt
35:          *                 StartZeitpunkt der Belegung
36:          * @param dauer
37:          *                 Dauer der Belegung
38:          * @param zuVerarbeitenderAuftrag
39:          *                 Produktionsauftrag an welchem gearbeitet wird
40:          *
41:          * @return eine erstellte Maschinebelegung mit den spezifierten Parametern.
42:          */
43:         public static MaschinenBelegungEintrag create(final LocalDateTime startZeitpunkt,
44:                                                       final ComparableQuantity<Time> dauer,
45:                                                       final ProduktionsAuftrag zuVerarbeitenderAuftrag) {
46:                 return new MaschinenBelegungEintrag(startZeitpunkt,
47:                                 dauer,
48:                                 zuVerarbeitenderAuftrag,
49:                                 BegrenzteBeilagenArten.EMPTY);
50:         }
51: 
52:         /**
53:          * @param startZeitpunkt
54:          *                 StartZeitpunkt der Belegung
55:          * @param dauer
56:          *                 Dauer der Belegung
57:          * @param zuVerarbeitenderAuftrag
58:          *                 Produktionsauftrag an welchem gearbeitet wird
59:          * @param beilagenKonfiguration
60:          *                 Die Beilagenkonfiguration, welche zu diesem Zeitpunkt an einer Maschine eingestellt ist.
61:          *
62:          * @return eine erstellte Maschinebelegung mit den spezifierten Parametern.
63:          */
64:         public static MaschinenBelegungEintrag create(final LocalDateTime startZeitpunkt,
65:                                                       final ComparableQuantity<Time> dauer,
66:                                                       final ProduktionsAuftrag zuVerarbeitenderAuftrag,
67:                                                       final BegrenzteBeilagenArten beilagenKonfiguration) {
68: 
69:                 return new MaschinenBelegungEintrag(startZeitpunkt,
70:                                 dauer,
71:                                 zuVerarbeitenderAuftrag,
72:                                 beilagenKonfiguration);
73:         }
74: 
75:         /**
76:          * @param startZeitpunkt
77:          *                 StartZeitpunkt der Belegung
78:          * @param endeZeitpunkt
79:          *                 EndeZeitpunkt der Belegung
80:          * @param zuVerarbeitenderAuftrag
81:          *                 Produktionsauftrag an welchem gearbeitet wird
82:          *
83:          * @return eine erstellte Maschinebelegung mit den spezifierten Parametern.
84:          */
85:         public static MaschinenBelegungEintrag create(final LocalDateTime startZeitpunkt,
86:                                                       final LocalDateTime endeZeitpunkt,
87:                                                       final ProduktionsAuftrag zuVerarbeitenderAuftrag) {
88: 
89:                 return new MaschinenBelegungEintrag(startZeitpunkt,
90:                                 endeZeitpunkt,
91:                                 zuVerarbeitenderAuftrag,
92:                                 BegrenzteBeilagenArten.EMPTY);
93:         }
94: 
95:         /**
96:          * @return BeilagenKonfiguration, welche zu diesem Zeitpunkt auf der Maschine aktiv ist.
97:          */
98:         public BegrenzteBeilagenArten getBeilagenKonfiguration() {
99:                 return this.beilagenKonfiguration;
100:         }
101: 
102:         @Override
103:         public <T> T accept(final KalenderEintragVisitor<T> visitor) {
104:                 return visitor.handle(this);
105:         }
106: 
107: 
108: }