Skip to content

Package: ErmittelteBelegungen

ErmittelteBelegungen

nameinstructionbranchcomplexitylinemethod
ErmittelteBelegungen(Collection, Map, Map)
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
equals(Object)
M: 5 C: 30
86%
M: 5 C: 5
50%
M: 5 C: 1
17%
M: 2 C: 6
75%
M: 0 C: 1
100%
erzeugeKalendereintraege()
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
getMaschinenbelegungen()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getMitarbeiterbelegungen()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getNichtZugeordneteProduktionsauftraege()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
hashCode()
M: 0 C: 19
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
lambda$erzeugeKalendereintraege$1(Maschine, MaschinenBelegung)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
lambda$erzeugeKalendereintraege$3(Mitarbeiter, MitarbeiterBelegung)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
lambda$null$0(Maschine, MaschinenBelegungEintrag)
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
lambda$null$2(Mitarbeiter, MenschBelegungEintrag)
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%

Coverage

1: package rollenbelegung;
2:
3: import auftraege.ProduktionsAuftrag;
4: import com.google.common.base.Objects;
5: import maschine.Maschine;
6: import mensch.Mitarbeiter;
7: import util.Immutable;
8:
9: import java.util.Collection;
10: import java.util.Collections;
11: import java.util.Map;
12:
13: /**
14: * Belegung von Mitarbeitern und Maschinen, welche durch den Rollenbelegungsservice ermittelt werden.
15: */
16: @Immutable
17: public class ErmittelteBelegungen {
18:         
19:         private final Collection<ProduktionsAuftrag> nichtZugeordneteProduktionsauftraege;
20:         private final Map<Maschine, MaschinenBelegung> maschinenbelegungen;
21:         private final Map<Mitarbeiter, MitarbeiterBelegung> mitarbeiterbelegungen;
22:         
23:         /**
24:          *
25:          * @param nichtZugeordneteProduktionsauftraege Produktionsaufträge, welche nicht in der Rollenbelegung betrachtet wurden.
26:          * @param maschinenbelegungen Belegung pro Maschine
27:          * @param mitarbeiterbelegungen Belegung pro Mitarbeiter
28:          */
29:         public ErmittelteBelegungen(final Collection<ProduktionsAuftrag> nichtZugeordneteProduktionsauftraege,
30:                         final Map<Maschine, MaschinenBelegung> maschinenbelegungen,
31:                         final Map<Mitarbeiter, MitarbeiterBelegung> mitarbeiterbelegungen) {
32:                 this.nichtZugeordneteProduktionsauftraege = nichtZugeordneteProduktionsauftraege;
33:                 this.maschinenbelegungen = maschinenbelegungen;
34:                 this.mitarbeiterbelegungen = mitarbeiterbelegungen;
35:         }
36:         
37:         /**
38:          * @return read-only nichtZugeordneteProduktionsauftraege
39:          */
40:         public Collection<ProduktionsAuftrag> getNichtZugeordneteProduktionsauftraege() {
41:                 return Collections.unmodifiableCollection(this.nichtZugeordneteProduktionsauftraege);
42:         }
43:         
44:         /**
45:          * @return read-only getMaschinenbelegungen
46:          */
47:         public Map<Maschine, MaschinenBelegung> getMaschinenbelegungen() {
48:                 return Collections.unmodifiableMap(this.maschinenbelegungen);
49:         }
50:         
51:         /**
52:          * @return read-only getMitarbeiterbelegungen
53:          */
54:         public Map<Mitarbeiter, MitarbeiterBelegung> getMitarbeiterbelegungen() {
55:                 return Collections.unmodifiableMap(this.mitarbeiterbelegungen);
56:         }
57:         
58:         /**
59:          * Überträgt die maschinenbelegungen und mitarbeiterbelegungen in die Kalender der entsprechenden {@link Maschine}n und {@link Mitarbeiter} und
60:          * erzeugt ebenfalls die entsprechenden Einträge in den entsprechenden {@link ProduktionsAuftrag ProduktionsAufträgen}.
61:          */
62:         public void erzeugeKalendereintraege() {
63:                 this.maschinenbelegungen.forEach((maschine, maschinenBelegung) ->
64:                 maschinenBelegung.getBelegung().forEach(maschinenBelegungsEintrag -> {
65:                         maschine.addBelegungsEintrag(maschinenBelegungsEintrag);
66:                         maschinenBelegungsEintrag.getZuVerarbeitenderAuftrag()
67:                         .addMaschinenBelegungsEintrag(maschine, maschinenBelegungsEintrag);
68:                 }));
69:                 
70:                 this.mitarbeiterbelegungen.forEach((mitarbeiter, mitarbeiterBelegung) -> mitarbeiterBelegung.getBelegung().forEach(menschBelegungsEintrag -> {
71:                         mitarbeiter.addBelegungsEintrag(menschBelegungsEintrag);
72:                         menschBelegungsEintrag.getZuVerarbeitenderAuftrag()
73:                         .addMenschBelegungsEintrag(
74:                                         mitarbeiter,
75:                                         menschBelegungsEintrag.getMaschineDieBedientWird().getFaehigkeit(),
76:                                         menschBelegungsEintrag);
77:                 }));
78:         }
79:
80: @Override
81: public boolean equals(final Object o) {
82:• if (this == o) {
83: return true;
84: }
85:• if (!(o instanceof ErmittelteBelegungen)) {
86: return false;
87: }
88: final ErmittelteBelegungen that = (ErmittelteBelegungen) o;
89:• return Objects.equal(this.nichtZugeordneteProduktionsauftraege, that.nichtZugeordneteProduktionsauftraege)
90:• && Objects.equal(this.maschinenbelegungen, that.maschinenbelegungen)
91:• && Objects.equal(this.mitarbeiterbelegungen, that.mitarbeiterbelegungen);
92: }
93:
94: @Override
95: public int hashCode() {
96: return Objects.hashCode(this.nichtZugeordneteProduktionsauftraege, this.maschinenbelegungen, this.mitarbeiterbelegungen);
97: }
98: }