Skip to content

Package: Kunden

Kunden

nameinstructionbranchcomplexitylinemethod
Kunden(KundenState)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
accept(AusschliessenderParameterVisitor)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
contains(Kunde)
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%
createMitErlaubten(List)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
createMitVerbotenen(List)
M: 0 C: 8
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;
2:
3: import auftraege.auftragsBildungsParameter.abstraction.AusschliessenderParameter;
4: import auftraege.auftragsBildungsParameter.abstraction.AusschliessenderParameterVisitor;
5: import auftraege.auftragsBildungsParameter.states.KundenErlaubt;
6: import auftraege.auftragsBildungsParameter.states.KundenState;
7: import auftraege.auftragsBildungsParameter.states.KundenVerboten;
8: import auftraege.versand.Kunde;
9:
10: import java.util.List;
11:
12: /**
13: * repräsentiert effektiv eine Liste von Kunden, kann jedoch auch invers gesehen werden.
14: * Siehe die Operationen {@linkKunden#createMitErlaubten(String)} sowie {@link Kunden#createMitVerbotenen(Set)}
15: */
16: public final class Kunden implements AusschliessenderParameter {
17:
18: private final KundenState state;
19:
20: private Kunden(final KundenState state) {
21: this.state = state;
22: }
23:
24: /**
25: *
26: * @param kunden verbotene Kunden
27: * @return erlaubt sämtliche Kunden, die angegeben werden (see Kunden#contains)
28: *
29: */
30: public static Kunden createMitErlaubten(final List<Kunde> kunden) {
31: return new Kunden(new KundenErlaubt(kunden));
32: }
33:
34:
35: /**
36: *
37: * @param kunden verbotene Kunden
38: * @return verbietet sämtliche Kunden, die angegeben werden.
39: */
40: public static Kunden createMitVerbotenen(final List<Kunde> kunden) {
41: return new Kunden(new KundenVerboten(kunden));
42: }
43:
44:
45: /**
46: *
47: * @param kunde zu prüfender kunde
48: * @return true, falls der kunde entweder nicht verboten oder expliziet erlaubt wurde, sonst false.
49: */
50: public boolean contains(final Kunde kunde) {
51: return this.state.contains(kunde);
52: }
53:
54: @Override
55: public <T> T accept(final AusschliessenderParameterVisitor<T> v) {
56: return v.handle(this);
57: }
58:
59:
60: }