Skip to content

Package: SortDruckTyp$1

SortDruckTyp$1

nameinstructionbranchcomplexitylinemethod
compare(Maschine, Maschine)
M: 4 C: 38
90%
M: 2 C: 2
50%
M: 2 C: 1
33%
M: 2 C: 6
75%
M: 0 C: 1
100%
{...}
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%

Coverage

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