Skip to content

Package: StrategieParameter$1

StrategieParameter$1

nameinstructionbranchcomplexitylinemethod
handle(FarbDruckTypMischbar)
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
handle(SimplexDuplexMischbar)
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
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 auftraege.auftragsBildungsParameter.abstraction;
2:
3: import auftraege.auftragsBildungsParameter.FarbDruckTypMischbar;
4: import auftraege.auftragsBildungsParameter.SimplexDuplexMischbar;
5:
6: /**
7: * Ein Strategie-Parameter gibt eine Eigenschaft an, durch die Kundenaufträge zu Produktionsaufträge zusammengefasst
8: * werden können. Beispielsweise: Farbe- und SchwarzWeiß-Kundenaufträgen.
9: */
10: public interface StrategieParameter extends ProduktionsauftragsParameter {
11:
12: /**
13: * Liefert die Singleton-Instanz eines Konkreten Strategieparameter.
14: *
15: * @param param Name der Klasse als String. Aktuell erlaubte Werte hierfür sind:
16: * {@code FarbDruckTypMischbar} und {@code SimplexDuplexMischbar}.
17: * @return Konkreter Strategieparameter, abhängig von {@code param}.
18: * Wirft eine {@link IllegalArgumentException}, wenn ein ungültiger String als Parameter übergeben wird.
19: */
20: static StrategieParameter create(final String param) {
21: switch (param) {
22: case "FarbDruckTypMischbar":
23: return FarbDruckTypMischbar.INSTANCE;
24: case "SimplexDuplexMischbar":
25: return SimplexDuplexMischbar.INSTANCE;
26: default:
27: throw new IllegalArgumentException("Der Parameter [" + param + "] konnte nicht interpretiert werden.");
28: }
29: }
30:
31: /**
32: * accept-Operation für einen StrategieParameterVisitor.
33: *
34: * @param v visitor.
35: * @param <T> Typ des Return-values.
36: * @return liefert ein T.
37: */
38: <T> T accept(StrategieParameterVisitor<T> v);
39:
40: /**
41: * je höher die Priorität, desto wichtiger ist dieser Parameter.
42: *
43: * @return die Priorität des Parameters
44: */
45: default int holePrioritaet() {
46: return this.accept(new StrategieParameterVisitor<Integer>() {
47:
48: @Override
49: public Integer handle(final FarbDruckTypMischbar farbDruckTypMischbar) {
50: return 1;
51: }
52:
53: @Override
54: public Integer handle(final SimplexDuplexMischbar simplexDuplexMischbar) {
55: return 2;
56: }
57:
58: });
59: }
60: }