Skip to content

Method: inverseAddOutporttyp(Porttyp)

1: package ablaeufe.meta;
2:
3: import ablaeufe.meta.visitor.ProzesstypVisitor;
4:
5: import java.util.ArrayList;
6: import java.util.Collections;
7: import java.util.List;
8:
9: /**
10: * Diese Klasse stellt einen Prozess auf der Wissensebene dar.
11: */
12: public abstract class Prozesstyp {
13:
14:         private final List<Porttyp> inporttypen;
15:         private final List<Porttyp> outporttypen;
16:
17:         /**
18:          * Initialisiert die Portmengen mit der leeren Menge.
19:          */
20:         public Prozesstyp() {
21:                 this.inporttypen = new ArrayList<>();
22:                 this.outporttypen = new ArrayList<>();
23:         }
24:
25:         /**
26:          *
27:          * @return Read-only Liste der Inporttypen.
28:          */
29:         public List<Porttyp> getInporttypen() {
30:                 return Collections.unmodifiableList(this.inporttypen);
31:         }
32:
33:         /**
34:          *
35:          * @return Read-only Liste der Outporttypen.
36:          */
37:         public List<Porttyp> getOutporttypen() {
38:                 return Collections.unmodifiableList(this.outporttypen);
39:         }
40:
41:         /**
42:          * @param outporttyp
43:          * hinzuzufügender Outporttyp
44:          */
45:         protected void addOutporttyp(final Porttyp outporttyp) {
46:                 this.outporttypen.add(outporttyp);
47:                 this.inverseAddOutporttyp(outporttyp);
48:         }
49:
50:         /**
51:          * @param inporttyp
52:          * hinzuzufügender Inporttyp
53:          */
54:         protected void addInporttyp(final Porttyp inporttyp) {
55:                 this.inporttypen.add(inporttyp);
56:                 this.inverseAddInporttyp(inporttyp);
57:         }
58:
59:         /**
60:          * Löscht alle aktuellen Outporttypen.
61:          */
62:         protected void clearOutporttypen() {
63:                 this.outporttypen.clear();
64:         }
65:
66:         /**
67:          * Löscht alle aktuellen Inporttypen.
68:          */
69:         protected void clearInporttypen() {
70:                 this.inporttypen.clear();
71:         }
72:
73: /**
74: * Wenn ein Outport einem Prozes hinzugefügt wird, wird automatisch diese Operation aufgerufen,
75: * damit die symmetrische Bedingung zwischen Porttypen und Prozesstypen konsistent bleibt.
76: * @param porttyp der als Outport hinzugefügt wurde.
77: */
78:         private void inverseAddOutporttyp(final Porttyp porttyp) {
79:          porttyp.addVorProzess(this);
80: }
81:
82: /**
83: * Wenn ein Outport einem Prozes hinzugefügt wird, wird automatisch diese Operation aufgerufen,
84: * damit die symmetrische Bedingung zwischen Porttypen und Prozesstypen konsistent bleibt.
85: * @param porttyp der als Inport hinzugefügt wurde.
86: */
87: private void inverseAddInporttyp(final Porttyp porttyp) {
88: porttyp.addNachProzess(this);
89: }
90:
91:         /**
92:          * Accept Operation für das Visitor Pattern.
93:          *
94:          * @param visitor
95:          * der Visitor
96:          */
97:         public abstract void accept(ProzesstypVisitor visitor);
98: }