Skip to content

Package: SortierHelper

SortierHelper

nameinstructionbranchcomplexitylinemethod
create()
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%
lambda$sortiereMaschinen$1(List, MaschinenSortierParameter)
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%
lambda$sortiereMitarbeiter$2(List, MitarbeiterSortierParameter)
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%
lambda$sortiereProduktionsAuftraege$0(List, ProduktionsAuftragSortierParameter)
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%
sortiereMaschinen(List, List)
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
sortiereMitarbeiter(List, List)
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
sortiereProduktionsAuftraege(List, List)
M: 0 C: 7
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
sortiereProduktionsAuftraegeUndMaschinenUndMitarbeiter(List, List, List, MaschinenRollenbelegungServiceParameter)
M: 0 C: 16
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%

Coverage

1: package rollenbelegung;
2:
3: import auftraege.ProduktionsAuftrag;
4: import maschine.Maschine;
5: import mensch.Mitarbeiter;
6: import rollenbelegung.SortierParameter.MaschinenRollenbelegungServiceParameter;
7: import rollenbelegung.SortierParameter.MaschinenSortierParameter.MaschinenSortierParameter;
8: import rollenbelegung.SortierParameter.MitarbeiterSortierParameter.MitarbeiterSortierParameter;
9: import rollenbelegung.SortierParameter.ProduktionsAuftragsSortierParameter.ProduktionsAuftragSortierParameter;
10: import java.util.Collections;
11: import java.util.List;
12:
13: /**
14: * Helperklasse, um die Sortierungsfunktionalität aus dem Produktionsplaner auszulagern. Sortiert ProduktionsAuftraege, Maschinen und Mitarbeiter nach
15: * MaschinenRollenbelegungServiceParametern.
16: */
17: public final class SortierHelper {
18:         
19:         private SortierHelper() {
20:         }
21:         
22:         /**
23:          * @return den erzeugten SortierHelper
24:          */
25:         public static SortierHelper create() {
26:                 return new SortierHelper();
27:         }
28:         
29:         /**
30:          * Sortiert ProduktionsAuftraege, Maschinen und Mitarbeiter nach MaschinenRollenbelegungServiceParametern.
31:          *
32:          * @param produktionsAuftraege
33:          *                 ProduktionsAuftraege, die sortiert werden sollen
34:          * @param maschinen
35:          *                 Maschinen, die sortiert werden sollen
36:          * @param mitarbeiter
37:          *                 Mitarbeiter, die sortiert werden sollen
38:          * @param parameter
39:          *                 MaschinenRollenbelegungServiceParameter nach denen sortiert wird
40:          */
41:         void sortiereProduktionsAuftraegeUndMaschinenUndMitarbeiter(
42:                         final List<ProduktionsAuftrag> produktionsAuftraege,
43:                         final List<Maschine> maschinen,
44:                         final List<Mitarbeiter> mitarbeiter,
45:                         final MaschinenRollenbelegungServiceParameter parameter) {
46:                 this.sortiereProduktionsAuftraege(produktionsAuftraege, parameter.getProduktionsAuftragsSortierungsarten());
47:                 this.sortiereMaschinen(maschinen, parameter.getMaschinenSortierungsarten());
48:                 this.sortiereMitarbeiter(mitarbeiter, parameter.getMitarbeiterSortierungsarten());
49:         }
50:         
51:         /**
52:          * Sortiert {@link ProduktionsAuftrag}e nach den übergebenen {@link ProduktionsAuftragSortierParameter}n.
53:          *
54:          * @param produktionsAuftraege
55:          *                 {@link ProduktionsAuftrag}e, die sortiert werden
56:          * @param produktionsAuftragSortierParameter
57:          *                 {@link ProduktionsAuftragSortierParameter} nach denen sortiert wird
58:          */
59:         public void sortiereProduktionsAuftraege(final List<ProduktionsAuftrag> produktionsAuftraege,
60:                         final List<ProduktionsAuftragSortierParameter> produktionsAuftragSortierParameter) {
61:                 Collections.reverse(produktionsAuftragSortierParameter);
62:                 produktionsAuftragSortierParameter.forEach(p -> p.sortiere(produktionsAuftraege));
63:         }
64:         
65:         /**
66:          * Sortiert {@link Maschine}n nach den übergebenen {@link MaschinenSortierParameter}n.
67:          *
68:          * @param maschinen
69:          *                 {@link Maschine}n, die sortiert werden
70:          * @param maschinenSortierParameter
71:          *                 {@link MaschinenSortierParameter} nach denen sortiert wird.
72:          */
73:         private void sortiereMaschinen(final List<Maschine> maschinen,
74:                         final List<MaschinenSortierParameter> maschinenSortierParameter) {
75:                 Collections.reverse(maschinenSortierParameter);
76:                 maschinenSortierParameter.forEach(p -> p.sortiere(maschinen));
77:         }
78:         
79:         /**
80:          * Sortiert {@link Mitarbeiter} nach {@link MitarbeiterSortierParameter}n.
81:          *
82:          * @param mitarbeiter
83:          *                 {@link Mitarbeiter}, die sortiert werden
84:          * @param mitarbeiterSortierParameter
85:          *                 {@link MitarbeiterSortierParameter} nach denen sortiert wird
86:          */
87:         private void sortiereMitarbeiter(final List<Mitarbeiter> mitarbeiter,
88:                         final List<MitarbeiterSortierParameter> mitarbeiterSortierParameter) {
89:                 Collections.reverse(mitarbeiterSortierParameter);
90:                 mitarbeiterSortierParameter.forEach(p -> p.sortiere(mitarbeiter));
91:         }
92:         
93: }
94: