Skip to content

Method: getInstanceAufsteigend()

1: package rollenbelegung.SortierParameter.MaschinenSortierParameter;
2:
3: import maschine.Maschine;
4: import rollenbelegung.SortierParameter.SortierReihenfolge;
5:
6: import java.util.Comparator;
7: import java.util.List;
8:
9: /**
10: * {@link MaschinenSortierParameter} zum Sortieren von {@link Maschine Maschinen} nach der Anzahl der Beilagenfächer.
11: */
12: public final class SortBeilagenFaecherAnzahl extends MaschinenSortierParameter {
13:
14:
15:         private static SortBeilagenFaecherAnzahl instanceAbsteigend;
16:         private static SortBeilagenFaecherAnzahl instanceAufsteigend;
17:
18:         private SortBeilagenFaecherAnzahl(final SortierReihenfolge sortierReihenfolge) {
19:                 super(sortierReihenfolge);
20:         }
21:
22:         /**
23:          * @return die instance, die aufsteigend sortiert.
24:          */
25:         public static SortBeilagenFaecherAnzahl getInstanceAufsteigend() {
26:•                if (SortBeilagenFaecherAnzahl.instanceAufsteigend == null) {
27:                         SortBeilagenFaecherAnzahl.instanceAufsteigend = new SortBeilagenFaecherAnzahl(SortierReihenfolge.AUFSTEIGEND);
28:                 }
29:                 return SortBeilagenFaecherAnzahl.instanceAufsteigend;
30:         }
31:
32:         /**
33:          * @return die instance, die absteigend sortiert.
34:          */
35:         public static SortBeilagenFaecherAnzahl getInstanceAbsteigend() {
36:                 if (SortBeilagenFaecherAnzahl.instanceAbsteigend == null) {
37:                         SortBeilagenFaecherAnzahl.instanceAbsteigend = new SortBeilagenFaecherAnzahl(SortierReihenfolge.ABSTEIGEND);
38:                 }
39:                 return SortBeilagenFaecherAnzahl.instanceAbsteigend;
40:         }
41:
42:         private Comparator<Maschine> getComparator() {
43:                 return (m1, m2) -> {
44:                         if (!m1.getAnzahlMoeglicherBeilagen().isPresent()) {
45:                                 return -1;
46:                         }
47:                         if (!m2.getAnzahlMoeglicherBeilagen().isPresent()) {
48:                                 return 1;
49:                         }
50:                         return m1.getAnzahlMoeglicherBeilagen().get().compareTo(m2.getAnzahlMoeglicherBeilagen().get());
51:                 };
52:         }
53:
54:         @Override
55:         public void specialSort(final List<Maschine> maschinen) {
56:                 maschinen.sort(this.getComparator());
57:         }
58:
59: }