Skip to content

Commit 5d59bfe

Browse files
committed
Issue #34 Added check so duplicates are not entered into Activity.node.
- Also add ActivityGroup, to handle XMI in which group references are serialized for structured activity nodes.
1 parent 44500f1 commit 5d59bfe

16 files changed

Lines changed: 4802 additions & 30 deletions

File tree

org.modeldriven.fuml/bin/log4j.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ log4j.rootLogger=INFO, console, fumllog
88

99
# Set to DEBUG to see execution trace logging.
1010
# Set to INFO to see subset execution event logging.
11-
log4j.category.fUML.Debug=DEBUG
11+
log4j.category.fuml.Debug=DEBUG
1212

1313
# Logging level for implementation infrastructure categories.
1414
log4j.category.org.modeldriven.fuml.environment=INFO

org.modeldriven.fuml/log4j.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
#Valid values are: OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL
44
log4j.threshold=ALL
55

6-
log4j.rootLogger=INFO, fumllog
6+
log4j.rootLogger=ERROR, console
77

88
# Set to DEBUG to see full execution trace logging.
99
# Set to INFO to see subset execution event logging.
10-
log4j.category.fUML.Debug=DEBUG
10+
log4j.category.fuml.Debug=DEBUG
1111

1212
# Logging level for implementation infrastructure categories.
1313
log4j.category.org.modeldriven.fuml.model=ERROR

org.modeldriven.fuml/src/main/java/fuml/semantics/actions/ConditionalNodeActivation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
import fuml.syntax.actions.Clause;
2222
import fuml.syntax.actions.ClauseList;
2323
import fuml.syntax.actions.ConditionalNode;
24-
import fuml.syntax.actions.ExecutableNode;
25-
import fuml.syntax.actions.ExecutableNodeList;
2624
import fuml.syntax.actions.OutputPin;
2725
import fuml.syntax.actions.OutputPinList;
2826
import fuml.syntax.actions.Pin;
27+
import fuml.syntax.activities.ExecutableNode;
28+
import fuml.syntax.activities.ExecutableNodeList;
2929

3030
public class ConditionalNodeActivation
3131
extends

org.modeldriven.fuml/src/main/java/fuml/semantics/actions/LoopNodeActivation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
import fuml.semantics.activities.ActivityNodeActivationList;
1818
import fuml.semantics.simpleclassifiers.BooleanValue;
1919
import fuml.semantics.values.ValueList;
20-
import fuml.syntax.actions.ExecutableNode;
2120
import fuml.syntax.actions.InputPin;
2221
import fuml.syntax.actions.InputPinList;
2322
import fuml.syntax.actions.LoopNode;
2423
import fuml.syntax.actions.OutputPin;
2524
import fuml.syntax.actions.OutputPinList;
2625
import fuml.syntax.actions.Pin;
2726
import fuml.syntax.activities.ActivityNodeList;
27+
import fuml.syntax.activities.ExecutableNode;
2828

2929
public class LoopNodeActivation
3030
extends

org.modeldriven.fuml/src/main/java/fuml/semantics/actions/StructuredActivityNodeActivation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public fuml.semantics.activities.ActivityNodeActivation getNodeActivation(
9898
} // getNodeActivation
9999

100100
public fuml.syntax.activities.ActivityNodeList makeActivityNodeList(
101-
fuml.syntax.actions.ExecutableNodeList nodes) {
101+
fuml.syntax.activities.ExecutableNodeList nodes) {
102102
// Return an activity node list containing the given list of executable
103103
// nodes
104104
// and any pins that they own.

org.modeldriven.fuml/src/main/java/fuml/syntax/actions/Action.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
package fuml.syntax.actions;
1414

1515
public abstract class Action extends
16-
fuml.syntax.actions.ExecutableNode {
16+
fuml.syntax.activities.ExecutableNode {
1717

1818
public fuml.syntax.actions.OutputPinList output = new fuml.syntax.actions.OutputPinList();
1919
public fuml.syntax.classification.Classifier context = null;

org.modeldriven.fuml/src/main/java/fuml/syntax/actions/Clause.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
public class Clause extends fuml.syntax.commonstructure.Element {
1616

17-
public fuml.syntax.actions.ExecutableNodeList test = new fuml.syntax.actions.ExecutableNodeList();
18-
public fuml.syntax.actions.ExecutableNodeList body = new fuml.syntax.actions.ExecutableNodeList();
17+
public fuml.syntax.activities.ExecutableNodeList test = new fuml.syntax.activities.ExecutableNodeList();
18+
public fuml.syntax.activities.ExecutableNodeList body = new fuml.syntax.activities.ExecutableNodeList();
1919
public fuml.syntax.actions.ClauseList predecessorClause = new fuml.syntax.actions.ClauseList();
2020
public fuml.syntax.actions.ClauseList successorClause = new fuml.syntax.actions.ClauseList();
2121
public fuml.syntax.actions.OutputPin decider = null;
@@ -28,12 +28,12 @@ public void addPredecessorClause(
2828
} // addPredecessorClause
2929

3030
public void addTest(
31-
fuml.syntax.actions.ExecutableNode test) {
31+
fuml.syntax.activities.ExecutableNode test) {
3232
this.test.addValue(test);
3333
} // addTest
3434

3535
public void addBody(
36-
fuml.syntax.actions.ExecutableNode body) {
36+
fuml.syntax.activities.ExecutableNode body) {
3737
this.body.addValue(body);
3838
} // addBody
3939

org.modeldriven.fuml/src/main/java/fuml/syntax/actions/LoopNode.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,25 @@ public class LoopNode
1818

1919
public boolean isTestedFirst = false;
2020
public fuml.syntax.actions.OutputPin decider = null;
21-
public fuml.syntax.actions.ExecutableNodeList test = new fuml.syntax.actions.ExecutableNodeList();
21+
public fuml.syntax.activities.ExecutableNodeList test = new fuml.syntax.activities.ExecutableNodeList();
2222
public fuml.syntax.actions.OutputPinList bodyOutput = new fuml.syntax.actions.OutputPinList();
2323
public fuml.syntax.actions.InputPinList loopVariableInput = new fuml.syntax.actions.InputPinList();
24-
public fuml.syntax.actions.ExecutableNodeList bodyPart = new fuml.syntax.actions.ExecutableNodeList();
24+
public fuml.syntax.activities.ExecutableNodeList bodyPart = new fuml.syntax.activities.ExecutableNodeList();
2525
public fuml.syntax.actions.OutputPinList result = new fuml.syntax.actions.OutputPinList();
2626
public fuml.syntax.actions.OutputPinList loopVariable = new fuml.syntax.actions.OutputPinList();
27-
public fuml.syntax.actions.ExecutableNodeList setupPart = new fuml.syntax.actions.ExecutableNodeList();
27+
public fuml.syntax.activities.ExecutableNodeList setupPart = new fuml.syntax.activities.ExecutableNodeList();
2828

2929
public void setIsTestedFirst(boolean isTestedFirst) {
3030
this.isTestedFirst = isTestedFirst;
3131
} // setIsTestedFirst
3232

3333
public void addTest(
34-
fuml.syntax.actions.ExecutableNode test) {
34+
fuml.syntax.activities.ExecutableNode test) {
3535
this.test.addValue(test);
3636
} // addTest
3737

3838
public void addBodyPart(
39-
fuml.syntax.actions.ExecutableNode bodyPart) {
39+
fuml.syntax.activities.ExecutableNode bodyPart) {
4040
this.bodyPart.addValue(bodyPart);
4141
} // addBodyPart
4242

org.modeldriven.fuml/src/main/java/fuml/syntax/activities/Activity.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,35 @@ public class Activity extends
2121
public fuml.syntax.activities.ActivityNodeList node = new fuml.syntax.activities.ActivityNodeList();
2222
public boolean isReadOnly = false;
2323
public fuml.syntax.activities.ActivityEdgeList edge = new fuml.syntax.activities.ActivityEdgeList();
24+
public fuml.syntax.activities.ActivityGroupList group = new fuml.syntax.activities.ActivityGroupList();
2425

2526
public void setIsReadOnly(boolean isReadOnly) {
2627
this.isReadOnly = isReadOnly;
2728
} // setIsReadOnly
2829

2930
public void addNode(
3031
fuml.syntax.activities.ActivityNode node) {
31-
super.addOwnedElement(node);
32-
33-
this.node.add(node);
34-
node._setActivity(this);
35-
36-
if (node instanceof StructuredActivityNode) {
32+
if (!this.node.contains(node)) {
33+
super.addOwnedElement(node);
34+
35+
this.node.add(node);
36+
node._setActivity(this);
37+
}
38+
39+
if (node instanceof StructuredActivityNode &&
40+
!this.structuredNode.contains(node)) {
3741
this.structuredNode.add((StructuredActivityNode) node);
3842
}
3943

4044
} // addNode
45+
46+
public void addStructuredNode(fuml.syntax.actions.StructuredActivityNode node) {
47+
this.addNode(node);
48+
}
49+
50+
public void addGroup(fuml.syntax.activities.ActivityGroup group) {
51+
this.group.add(group);
52+
}
4153

4254
public void addEdge(
4355
fuml.syntax.activities.ActivityEdge edge) {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright 2020 Model Driven Solutions, Inc.
3+
*
4+
* Licensed under the Academic Free License version 3.0
5+
* (http://www.opensource.org/licenses/afl-3.0.php), except as stated
6+
* in the file entitled Licensing-Information.
7+
*/
8+
package fuml.syntax.activities;
9+
10+
public abstract class ActivityGroup extends ActivityNode {
11+
12+
}

0 commit comments

Comments
 (0)