Skip to contentMethod: Qualifikation(int, int, int, MitarbeiterFaehigkeit)
      1: package mensch;
2: 
3: import mensch.faehigkeit.MitarbeiterFaehigkeit;
4: 
5: /**
6:  * Eine Qualifikation gibt an: - in welchem Maße ein Mitarbeiter eine Fähigkeit besitzt (rating), - wie gerne ein
7:  * Mitarbeiter eine Fähigkeit anwendet (praeferenz), - ob ein Mitarbeiter ggf. eingeschränkt in seiner
8:  * Leistungsfaehigkeit ist (status) in Prozent
9:  */
10: public final class Qualifikation {
11:         
12:         /**
13:          * 
14:          */
15:         private static final int MAX_RATING = 9;
16:     private static final int MAX_PRAEFERENZ = 9;
17:     private final int rating;
18:         private final int status;
19:         private final int praeferenz;
20:         private final MitarbeiterFaehigkeit faehigkeit;
21:         
22:         private Qualifikation(final int rating,
23:                         final int status,
24:                         final int praeferenz,
25:                         final MitarbeiterFaehigkeit faehigkeit) {
26:                 this.rating = rating;
27:                 this.status = status;
28:                 this.praeferenz = praeferenz;
29:                 this.faehigkeit = faehigkeit;
30:         }
31:         
32:         /**
33:          * Erstellt eine Qualifikation mit den uebergebenen Parametern.
34:          * 
35:          * @param rating
36:          *            Maß, in dem ein Mitarbeiter eine MaschinenFaehigkeit besitzt (Zahl von 0-9)
37:          * @param status
38:          *            Status, der angibt, ob ein Mitarbeiter ggf. eingeschränkt in seiner Leistungsfaehigkeit ist (in
39:          *            Prozent)
40:          * @param praeferenz
41:          *            Praeferenz, die angibt, wie gerne ein Mitarbeiter diese MaschinenFaehigkeit ausfuehrt (Zahl von 0-9)
42:          * @param faehigkeit
43:          *            MaschinenFaehigkeit, zu der rating, status und praeferenz erfasst werden
44:          * @return Die erstellte Qualifikation
45:          */
46:         public static Qualifikation create(final int rating,
47:                                        final int status,
48:                                        final int praeferenz,
49:                                        final MitarbeiterFaehigkeit faehigkeit) {
50: 
51:             if (rating < 0 || rating > Qualifikation.MAX_RATING) {
52:             throw new RuntimeException(String.format("Rating muss zwischen 0 und %s sein!",
53:                     Qualifikation.MAX_RATING));
54:         }
55:         if (praeferenz < 0 || praeferenz > Qualifikation.MAX_PRAEFERENZ) {
56:             throw new RuntimeException(String.format("Präferenz muss zwischen 0 und %s sein!",
57:                     Qualifikation.MAX_PRAEFERENZ));
58:         }
59:                 return new Qualifikation(rating, status, praeferenz, faehigkeit);
60:         }
61:         
62:         /**
63:          * @return die MaschinenFaehigkeit, zu der Rating. Status und Präferenz erfasst werden
64:          */
65:         public MitarbeiterFaehigkeit getFaehigkeit() {
66:                 return this.faehigkeit;
67:         }
68: 
69:         /**
70:          * @return gibt das Rating der Qualifikation zurück.
71:          * Maß, in dem ein Mitarbeiter eine MaschinenFaehigkeit besitzt (Zahl von 0-9)
72:          */
73:         public int getRating() {
74:                 return this.rating;
75:         }
76:         
77:         /**
78:          * @return gibt den Status der Qualifikation zurück.
79:          * Status, der angibt, ob ein Mitarbeiter ggf. eingeschränkt in seiner Leistungsfaehigkeit ist (in Prozent)
80:          */
81:         public int getStatus() {
82:                 return this.status;
83:         }
84:         
85:         /**
86:          * @return gibt die Präferenz der Qualifikation zurück.
87:          * Präferenz, die angibt, wie gerne ein Mitarbeiter diese MaschinenFaehigkeit ausfuehrt.
88:          */
89:         public int getPraeferenz() {
90:                 return this.praeferenz;
91:         }
92:         
93: }