Skip to content

Method: getComparator()

1: package rollenbelegung.SortierParameter.MitarbeiterSortierParameter;
2:
3: import mensch.Mitarbeiter;
4: import rollenbelegung.SortierParameter.SortierReihenfolge;
5:
6: import java.util.Comparator;
7: import java.util.List;
8:
9: /**
10: * Parameter zum Sortieren von Mitarbeitern nach der Anzahl ihrer Qualifikationen.
11: */
12: public final class SortAnzahlQualifikationen extends MitarbeiterSortierParameter {
13:
14:         private static SortAnzahlQualifikationen instanceAbsteigend;
15:         private static SortAnzahlQualifikationen instanceAufsteigend;
16:
17:         private SortAnzahlQualifikationen(final SortierReihenfolge sortierReihenfolge) {
18:                 super(sortierReihenfolge);
19:         }
20:
21:         /**
22:          * @return die instance, die aufsteigend sortiert.
23:          */
24:         public static SortAnzahlQualifikationen getInstanceAufsteigend() {
25:                 if (SortAnzahlQualifikationen.instanceAufsteigend == null) {
26:                         SortAnzahlQualifikationen.instanceAufsteigend = new SortAnzahlQualifikationen(SortierReihenfolge.AUFSTEIGEND);
27:                 }
28:                 return SortAnzahlQualifikationen.instanceAufsteigend;
29:         }
30:
31:         /**
32:          * @return die instance, die absteigend sortiert.
33:          */
34:         public static SortAnzahlQualifikationen getInstanceAbsteigend() {
35:                 if (SortAnzahlQualifikationen.instanceAbsteigend == null) {
36:                         SortAnzahlQualifikationen.instanceAbsteigend = new SortAnzahlQualifikationen(SortierReihenfolge.ABSTEIGEND);
37:                 }
38:                 return SortAnzahlQualifikationen.instanceAbsteigend;
39:         }
40:
41:         private Comparator<Mitarbeiter> getComparator() {
42:                 return Comparator.comparingInt(m -> m.getQualifikationen().size());
43:         }
44:
45:         @Override
46:         public void specialSort(final List<Mitarbeiter> produktionsAuftraege) {
47:                 produktionsAuftraege.sort(this.getComparator());
48:         }
49:
50: }