Skip to content

Commit 4281088

Browse files
committed
ST6RI-864 Updated UsageUtil.getObjectiveRequirementOf for feature chains
Proactively resolves issue SYSML21-309, so that an objective redefines a general type that is a feature chain whose featureTarget is a CaseUsage.
1 parent 294f8b5 commit 4281088

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

org.omg.sysml.xpect.tests/src/org/omg/sysml/xpect/tests/simpletests/UseCaseTest.sysml.xt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,12 @@ package UseCaseTest {
8686
part system : System {
8787
include uc2;
8888
perform u;
89+
use case uc1 : UC1;
90+
}
91+
92+
use case uc3 {
93+
include u;
94+
include system.uc1;
8995
}
9096

9197
}

org.omg.sysml/src/org/omg/sysml/util/UsageUtil.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,11 @@ public static void addSubjectParameterTo(Type type) {
151151
// Objectives
152152

153153
public static RequirementUsage getObjectiveRequirementOf(Type type) {
154+
// TODO: Update checkRequirementUsageObjectiveRedefinition
155+
// See SYSML21-309
156+
if (type instanceof Feature) {
157+
type = ((Feature)type).getFeatureTarget();
158+
}
154159
NamespaceUtil.addAdditionalMembersTo(type);
155160
return type instanceof CaseDefinition? ((CaseDefinition)type).getObjectiveRequirement():
156161
type instanceof CaseUsage? ((CaseUsage)type).getObjectiveRequirement():

sysml/src/examples/Simple Tests/UseCaseTest.sysml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ package UseCaseTest {
3131
part system : System {
3232
include uc2;
3333
perform u;
34+
use case uc1 : UC1;
35+
}
36+
37+
use case uc3 {
38+
include u;
39+
include system.uc1;
3440
}
3541

3642
}

0 commit comments

Comments
 (0)