Skip to content

Package: SortFarbDruckTyp$1

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