Skip to content

Package: SortFarbDruckTyp

SortFarbDruckTyp

nameinstructionbranchcomplexitylinemethod
SortFarbDruckTyp(SortierReihenfolge)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
getComparator()
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getInstanceAbsteigend()
M: 9 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
getInstanceAufsteigend()
M: 0 C: 9
100%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 0 C: 3
100%
M: 0 C: 1
100%
specialSort(List)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
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: }