Skip to contentMethod: 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: }