Skip to contentMethod: equals(Object)
      1: package mensch.faehigkeit;
2: 
3: import maschine.MaschinenTyp;
4: 
5: import java.util.Objects;
6: 
7: /**
8:  * Ein Mitarbeiter benötigt bestimmte Fähigkeiten, um bestimmte Tätigkeiten an einer Maschine ausueben zu koennen.
9:  */
10: public class MitarbeiterFaehigkeitFuerMaschine extends MitarbeiterFaehigkeit {
11:         
12:         private final MaschinenTyp maschinenTyp;
13:         
14:         /**
15:          * erstellt eine {@link MitarbeiterFaehigkeitFuerMaschine}. Dieser Konstruktor soll nur über den
16:          * {@linkplain MitarbeiterFaehigkeitenManager} aufgerufen werden.
17:          * 
18:          * @param name
19:          *            Name der Fähigkeit
20:          * @param beschreibung
21:          *            Beschreibung der Fähigkeit
22:          * @param maschinentyp
23:          *            {@linkplain MaschinenTyp}, zu welchem diese Fähigkeit befähigt
24:          */
25:         MitarbeiterFaehigkeitFuerMaschine(final String name, final String beschreibung, final MaschinenTyp maschinentyp) {
26:                 super(name, beschreibung);
27:                 this.maschinenTyp = maschinentyp;
28:         }
29:         
30:         /**
31:          * Erstellt eine {@linkplain MitarbeiterFaehigkeitFuerMaschine} über den Manager und stellt dabei die Eindeutigkeit
32:          * über den Namen sicher.
33:          * 
34:          * @param name
35:          *            der zu erstellenden MitarbeiterFaehigkeitFuerMaschine
36:          * @param beschreibung
37:          *            der zu erstellenden MitarbeiterFaehigkeitFuerMaschine
38:          * @param maschinentyp
39:          *            {@linkplain MaschinenTyp} für welchen diese Fähigkeit befähigen soll.
40:          * @return die zu erstellende Mitarbeiterfähigkeit.
41:      */
42:         public static MitarbeiterFaehigkeitFuerMaschine create(final String name, final String beschreibung, final MaschinenTyp maschinentyp) {
43:                 return MitarbeiterFaehigkeitenManager.getInstance().createMitarbeiterFaehigkeitFuerMaschine(name, beschreibung, maschinentyp);
44:         }
45:         
46:         /**
47:          * @return maschinenTyp der MitarbeiterFaehigkeitFuerMaschine
48:          */
49:         public MaschinenTyp getMaschinenTyp() {
50:                 return this.maschinenTyp;
51:         }
52: 
53:     @Override
54:     public boolean equals(final Object o) {
55:•        if (this == o) {
56:             return true;
57:         }
58:•        if (o == null || this.getClass() != o.getClass()) {
59:             return false;
60:         }
61:•        if (!super.equals(o)) {
62:             return false;
63:         }
64:         final MitarbeiterFaehigkeitFuerMaschine that = (MitarbeiterFaehigkeitFuerMaschine) o;
65:         return Objects.equals(this.maschinenTyp, that.maschinenTyp);
66:     }
67: 
68:     @Override
69:     public int hashCode() {
70:         return Objects.hash(super.hashCode(), this.maschinenTyp);
71:     }
72:         
73:         
74: }