Skip to content

Package: Prozess

Prozess

nameinstructionbranchcomplexitylinemethod
Prozess()
M: 0 C: 13
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
addInport(Port)
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
addOutport(Port)
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
getInports()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getOutports()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
ueberpruefePortTypisierung(Port, List, List)
M: 10 C: 19
66%
M: 2 C: 2
50%
M: 2 C: 1
33%
M: 2 C: 6
75%
M: 0 C: 1
100%

Coverage

1: package ablaeufe.operation;
2:
3: import ablaeufe.meta.Porttyp;
4: import ablaeufe.meta.Prozesstyp;
5:
6: import java.util.ArrayList;
7: import java.util.Collections;
8: import java.util.List;
9: import java.util.Set;
10: import java.util.stream.Collectors;
11:
12: /**
13: * Ein Prozess ist ein logischer zeitlicher Ablauf von Aktivitäten. Ein Prozess ist ein Exemplar eines Prozesstypen und
14: * kann keine Aktivitäten beinhalten/ausführen, die nicht im Modell definiert wurden!
15: */
16: public abstract class Prozess {
17:         
18:         private final List<Port> inports;
19:         private final List<Port> outports;
20:
21: /**
22: * Erstellt den Prozess mit leeren Inport- und Outportlisten.
23: */
24:         protected Prozess() {
25:                 super();
26:                 this.inports = new ArrayList<>();
27:                 this.outports = new ArrayList<>();
28:         }
29:
30: /**
31: * @return den Typ auf der Metaebene des Prozesses.
32: */
33:         public abstract Prozesstyp getTyp();
34:
35: /**
36: * @param port Port, welcher als Inport hinzugefügt werden soll.
37: * Löst eine Exeption aus, wenn der Porttyp des Ports nicht in den Inporttypen des Prozesses typisiert ist oder
38: * wenn ein anderer Inport existiert, welcher bereits den Porttypen des neuen Inports typisiert,
39: */
40:         protected void addInport(final Port port) {
41: this.ueberpruefePortTypisierung(port, this.getTyp().getInporttypen(), this.inports);
42: this.inports.add(port);
43: }
44:
45: /**
46: * @param port Port, welcher als Outport hinzugefügt werden soll.
47: * Löst eine Exeption aus, wenn der Porttyp des Ports nicht in den Outporttypen des Prozesses typisiert ist oder
48: * wenn ein anderer Outport existiert, welcher bereits den Porttypen des neuen Outports typisiert,
49: */
50: protected void addOutport(final Port port) {
51: this.ueberpruefePortTypisierung(port, this.getTyp().getOutporttypen(), this.outports);
52: this.outports.add(port);
53: }
54:
55: private void ueberpruefePortTypisierung(final Port port, final List<Porttyp> porttypen, final List<Port> vorhandenePorts) {
56:• if (!porttypen.contains(port.getTyp())) {
57: throw new KonsistenzVerletztException("Porttyp des potentiell neuen Port nicht im Prozess typisiert!");
58: }
59: final Set<Porttyp> belegtePorttypen = vorhandenePorts.stream()
60: .map(Port::getTyp)
61: .collect(Collectors.toSet());
62:• if (belegtePorttypen.contains(port.getTyp())) {
63: throw new KonsistenzVerletztException("Porttyp des potentiell neuen Port bereits von einem vorhandenen Port typisiert!");
64: }
65: }
66:
67: /**
68:          *
69:          * @return read-only Liste der Inports
70:          */
71:         public List<Port> getInports() {
72:                 return Collections.unmodifiableList(this.inports);
73:         }
74:         
75:         /**
76:          *
77:          * @return Liste der Outports
78:          */
79:         public List<Port> getOutports() {
80:                 return Collections.unmodifiableList(this.outports);
81:         }
82:
83: }