Skip to content

Package: Aktivitaetstyp

Aktivitaetstyp

nameinstructionbranchcomplexitylinemethod
Aktivitaetstyp(Verarbeitung, Akteurtyp)
M: 0 C: 9
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
ausfuehren(Aktivitaet)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
getAkteurtyp()
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%
getInport()
M: 0 C: 20
100%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 0 C: 3
100%
M: 0 C: 1
100%
getOutport()
M: 0 C: 20
100%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 0 C: 3
100%
M: 0 C: 1
100%
getStrategie()
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%
setOrAddInporttyp(Porttyp)
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%
setOrAddOutporttyp(Porttyp)
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%

Coverage

1: package ablaeufe.meta.aktivitaetstypen;
2:
3: import ablaeufe.meta.AtomarerProzesstyp;
4: import ablaeufe.meta.Porttyp;
5: import ablaeufe.meta.akteurstypen.Akteurtyp;
6: import ablaeufe.meta.strategies.aktivitaet.Verarbeitung;
7: import ablaeufe.meta.visitor.AktivitaetstypVisitor;
8: import ablaeufe.operation.aktivitaeten.Aktivitaet;
9:
10: /**
11: * Ein Aktivitätstyp ist ein atomarer Prozesstyp. Sie benennt einen Akteurtyp, der den Aktivitätstypen beaufsichtigen
12: * muss. Außerdem wird eine Strategie (Verarbeitung) benannt, die entscheidet, was in der Aktivität geschehen soll.
13: *
14: */
15: public abstract class Aktivitaetstyp extends AtomarerProzesstyp {
16:         
17:         private final Akteurtyp akteurtyp;
18:         private final Verarbeitung strategie;
19:         
20:         /**
21:          * Erstellt einen neuen Aktivitätstypen, der bereits eine Strategie zur Verarbeitung besitzt.
22:          * @param akteurtyp {@link Akteurtyp}
23:          * @param verarbeitung
24:          * die Strategie
25:          */
26:         Aktivitaetstyp(final Verarbeitung verarbeitung, final Akteurtyp akteurtyp) {
27:                 this.strategie = verarbeitung;
28:                 this.akteurtyp = akteurtyp;
29:         }
30:         
31:         /**
32:          * Gibt den momentan zugewiesenen Akteurtyp zurück. Kann null sein.
33:          *
34:          * @return der zugehörige Akteurtyp
35:          */
36:         public Akteurtyp getAkteurtyp() {
37:                 return this.akteurtyp;
38:         }
39:         
40:         /**
41:          * Gibt die momentan zugewiesene Strategie zurück. Kann null sein.
42:          *
43:          * @return die zugehörige Strategie
44:          */
45:         public Verarbeitung getStrategie() {
46:                 return this.strategie;
47:         }
48:
49:         /**
50:          *
51:          * @return den Outport der Aktivität.
52:          */
53:         public Porttyp getOutport() {
54:•                if (this.getOutporttypen().isEmpty() || this.getOutporttypen().size() > 1) {
55:                         throw new RuntimeException("Outports sind leer oder es gibt mehr als Einen! Kann keinen Outport liefern!");
56:                 }
57:                 return this.getOutporttypen().get(0);
58:         }
59:
60:         /**
61:          *
62:          * @return den Inport der Aktivität.
63:          */
64:         public Porttyp getInport() {
65:•                if (this.getInporttypen().isEmpty() || this.getInporttypen().size() > 1) {
66:                         throw new RuntimeException("Inports sind leer oder es gibt mehr als Einen! Kann keinen Inport liefern!");
67:                 }
68:                 return this.getInporttypen().get(0);
69:         }
70:
71: @Override
72: public void setOrAddOutporttyp(final Porttyp porttyp) {
73: this.clearOutporttypen();
74: this.addOutporttyp(porttyp);
75: }
76:
77: @Override
78: public void setOrAddInporttyp(final Porttyp porttyp) {
79: this.clearInporttypen();
80: this.addInporttyp(porttyp);
81: }
82:
83: /**
84:          * Führt die übergebene instanz mit der definierten Strategy aus, wenn sie in this typisiert ist.
85:          * @param instanz
86:          * welche zur Strategie für die konkrete Ausführung weitergegeben wird.
87:          */
88:         public void ausfuehren(final Aktivitaet instanz) {
89:                 this.strategie.durchfuehren(instanz);
90:         }
91:
92: /**
93:          * Accept Operation für das Visitor Pattern.
94:          *
95:          * @param visitor
96:          * der Visitor
97:          */
98:         public abstract void accept(AktivitaetstypVisitor visitor);
99:         
100: }