Skip to content

Package: Drucken$1

Drucken$1

nameinstructionbranchcomplexitylinemethod
handle(Drucken)
M: 0 C: 26
100%
M: 1 C: 5
83%
M: 1 C: 3
75%
M: 0 C: 3
100%
M: 0 C: 1
100%
handle(Kuvertieren)
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(SimplesDrucken)
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(SimplesKuvertieren)
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 maschine.faehigkeit;
2:
3: import maschine.papierart.PapierQuelle;
4: import util.Immutable;
5:
6: import java.util.EnumSet;
7:
8: /**
9: * {@link MaschinenFaehigkeit}, zu Drucken.
10: */
11: @Immutable
12: public class Drucken extends SimplesDrucken {
13:         private final PapierQuelle unterstuetztePapierQuellen;
14:         private final EnumSet<FarbDruckTyp> unterstuetzteFarbdruckTypen;
15:         private final EnumSet<DruckTyp> unterstuetzteDrucktypen;
16:         
17:         /**
18:          * Erstellt eine neue Druckenfähigkeit.
19:          *
20:          * @param name
21:          *                 der Fähigkeit
22:          * @param papierQuelle
23:          *                 Papierquelle
24:          * @param farbeOderSW
25:          *                 Farbdrucktyp
26:          * @param druckTyp
27:          *                 Drucktyp
28:          */
29:         public Drucken(final String name, final PapierQuelle papierQuelle, final EnumSet<FarbDruckTyp> farbeOderSW, final EnumSet<DruckTyp> druckTyp) {
30:                 super(name);
31:                 this.unterstuetztePapierQuellen = papierQuelle;
32:                 this.unterstuetzteFarbdruckTypen = farbeOderSW;
33:                 this.unterstuetzteDrucktypen = druckTyp;
34:         }
35:         
36:         /**
37:          * Liefert {@code true}, falls die {@link PapierQuelle} unterstützt wird.
38:          *
39:          * @param papierQuelle
40:          *                 Format
41:          *
42:          * @return Wahrheitswert
43:          */
44:         public boolean supports(final PapierQuelle papierQuelle) {
45:                 return this.unterstuetztePapierQuellen == papierQuelle;
46:         }
47:         
48:         /**
49:          * Liefert {@code true}, falls die {@link FarbDruckTyp} unterstützt wird.
50:          *
51:          * @param farbDruckTyp
52:          *                 Format
53:          *
54:          * @return Wahrheitswert
55:          */
56:         public boolean supports(final FarbDruckTyp farbDruckTyp) {
57:                 return this.unterstuetzteFarbdruckTypen.contains(farbDruckTyp);
58:         }
59:         
60:         /**
61:          * Liefert {@code true}, falls die {@link DruckTyp} unterstützt wird.
62:          *
63:          * @param druckTyp
64:          *                 Format
65:          *
66:          * @return Wahrheitswert
67:          */
68:         public boolean supports(final DruckTyp druckTyp) {
69:                 return this.unterstuetzteDrucktypen.contains(druckTyp);
70:         }
71:         
72:         @Override
73:         public boolean erfuelltDruckTyp(final DruckTyp drucktyp) {
74:                 return this.unterstuetzteDrucktypen.contains(drucktyp);
75:         }
76:         
77:         @Override
78:         public boolean erfuelltFarbDruckTyp(final FarbDruckTyp farbdrucktyp) {
79:                 return this.unterstuetzteFarbdruckTypen.contains(farbdrucktyp);
80:         }
81:         
82:         @Override
83:         public boolean erfuellt(final MaschinenFaehigkeit anforderung) {
84:                 return anforderung.accept(new FaehigkeitVisitor<Boolean>() {
85:                         
86:                         @Override
87:                         public Boolean handle(final Drucken drucken) {
88:•                                return Drucken.this.unterstuetzteDrucktypen.containsAll(drucken.unterstuetzteDrucktypen)
89:•                                                && Drucken.this.unterstuetzteFarbdruckTypen.containsAll(drucken.unterstuetzteFarbdruckTypen)
90:•                                                && Drucken.this.unterstuetztePapierQuellen.compareTo(drucken.unterstuetztePapierQuellen) >= 0;
91:                         }
92:                         
93:                         @Override
94:                         public Boolean handle(final Kuvertieren kuvertieren) {
95:                                 return false;
96:                         }
97:                         
98:                         @Override
99:                         public Boolean handle(final SimplesDrucken simplesDrucken) {
100:                                 return true;
101:                         }
102:                         
103:                         @Override
104:                         public Boolean handle(final SimplesKuvertieren simplesKuvertieren) {
105:                                 return false;
106:                         }
107:                 });
108:         }
109:         
110:         
111:         @Override
112:         public <T> T accept(final FaehigkeitVisitor<T> visitor) {
113:                 return visitor.handle(this);
114:         }
115:         
116:         /**
117:          * @return Die unterstützten FarbDruckTypen.
118:          */
119:         public EnumSet<FarbDruckTyp> getUnterstuetzteFarbdruckTypen() {
120:                 return this.unterstuetzteFarbdruckTypen;
121:         }
122:         
123:         /**
124:          * @return Die unterstützten Drucktypen.
125:          */
126:         public EnumSet<DruckTyp> getUnterstuetzteDrucktypen() {
127:                 return this.unterstuetzteDrucktypen;
128:         }
129:         
130:         @Override
131:         public int hashCode() {
132:                 final int prime = 31;
133:                 int result = 1;
134:                 result = prime * result + ((this.unterstuetzteDrucktypen == null) ? 0 : this.unterstuetzteDrucktypen.hashCode());
135:                 result = prime * result + ((this.unterstuetzteFarbdruckTypen == null) ? 0 : this.unterstuetzteFarbdruckTypen.hashCode());
136:                 result = prime * result + ((this.unterstuetztePapierQuellen == null) ? 0 : this.unterstuetztePapierQuellen.hashCode());
137:                 return result;
138:         }
139:         
140:         @Override
141:         public boolean equals(final Object obj) {
142:                 if (obj instanceof SimplesDrucken && !(obj instanceof Drucken)) {
143:                         return false;
144:                 }
145:                 
146:                 if (obj instanceof Drucken) {
147:                         final Drucken other = (Drucken) obj;
148:                         return this.unterstuetzteDrucktypen.equals(other.unterstuetzteDrucktypen)
149:                                         && this.unterstuetzteFarbdruckTypen.equals(other.unterstuetzteFarbdruckTypen)
150:                                         && this.unterstuetztePapierQuellen.equals(other.unterstuetztePapierQuellen);
151:                 }
152:                 return false;
153:         }
154: }