Skip to content

Commit bc3830f

Browse files
authored
Merge pull request #669 from Systems-Modeling/ST6RI-864
ST6RI-864 Additional semantic transformation bugs
2 parents 7ee1375 + 68ab465 commit bc3830f

File tree

24 files changed

+198
-87
lines changed

24 files changed

+198
-87
lines changed

kerml/src/examples/Simple Tests/Behaviors.kerml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ package Behaviors {
1313
class C {
1414
var z = A().y;
1515
step a : A;
16+
step b : B;
1617
binding z = a.y;
18+
flow a.y to b.x1;
1719
}
20+
abstract flow msg of C;
1821
}

org.omg.kerml.xpect.tests/src/org/omg/kerml/xpect/tests/parsing/ParsingTests_Behaviors.kerml.xt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ XPECT_SETUP org.omg.kerml.xpect.tests.parsing.KerMLParsingTest
55
File {from ="/library/Base.kerml"}
66
File {from ="/library/Links.kerml"}
77
File {from ="/library/Occurrences.kerml"}
8+
File {from ="/library/Objects.kerml"}
89
File {from ="/library/Performances.kerml"}
10+
File {from ="/library/Transfers.kerml"}
911
File {from ="/library/ControlFunctions.kerml"}
1012
}
1113
Workspace {
@@ -15,7 +17,9 @@ XPECT_SETUP org.omg.kerml.xpect.tests.parsing.KerMLParsingTest
1517
File {from ="/library/Base.kerml"}
1618
File {from ="/library/Links.kerml"}
1719
File {from ="/library/Occurrences.kerml"}
20+
File {from ="/library/Objects.kerml"}
1821
File {from ="/library/Performances.kerml"}
22+
File {from ="/library/Transfers.kerml"}
1923
File {from ="/library/ControlFunctions.kerml"}
2024
}
2125
}
@@ -34,6 +38,14 @@ package Behaviors {
3438
}
3539
behavior B specializes A {
3640
in x1;
37-
out y1;
41+
out var y1;
3842
}
43+
class C {
44+
var z = A().y;
45+
step a : A;
46+
step b : B;
47+
binding z = a.y;
48+
flow a.y to b.x1;
49+
}
50+
abstract flow msg of C;
3951
}

org.omg.sysml.interactive.tests/resources/org/omg/sysml/semantics/tests/sysml-simple-specializations.csv

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ true,checkItemDefinitionSpecialization,ItemDefinition,Items::Item,Package,Owning
22
true,checkPartDefinitionSpecialization,PartDefinition,Parts::Part,Package,OwningMembership
33
true,checkPortDefinitionSpecialization,PortDefinition,Ports::Port,Package,OwningMembership
44
true,checkConnectionDefinitionSpecialization,ConnectionDefinition,Connections::Connection,Package,OwningMembership
5-
false,checkFlowDefinitionSpecialization,FlowDefinition,Flows::MessageAction,Package,OwningMembership
5+
true,checkFlowDefinitionSpecialization,FlowDefinition,Flows::MessageAction,Package,OwningMembership
66
true,checkInterfaceDefinitionSpecialization,InterfaceDefinition,Interfaces::Interface,Package,OwningMembership
77
true,checkAllocationDefinitionSpecialization,AllocationDefinition,Allocations::Allocation,Package,OwningMembership
88
true,checkActionDefinitionSpecialization,ActionDefinition,Actions::Action,Package,OwningMembership
@@ -62,6 +62,8 @@ true,checkIfActionUsageSubactionSpecialization,IfActionUsage,Actions::Action::if
6262
true,checkWhileLoopActionUsageSubactionSpecialization,WhileLoopActionUsage,Actions::Action::whileLoops,ActionUsage,FeatureMembership
6363
true,checkForLoopActionUsageSubactionSpecialization,ForLoopActionUsage,Actions::Action::forLoops,ActionUsage,FeatureMembership
6464
true,checkPerformActionUsageSpecialization,PerformActionUsage,Parts::Part::performedActions,PartUsage,FeatureMembership
65+
true,checkTerminateActionUsageSubactionSpecialization,TerminateActionUsage,Actions::Action::terminateSubactions,ActionDefinition,FeatureMembership
66+
true,checkTerminateActionUsageSubactionSpecialization,TerminateActionUsage,Actions::Action::terminateSubactions,ActionUsage,FeatureMembership
6567
true,checkPerformActionUsageSpecialization,PerformActionUsage,Parts::Part::performedActions,PartDefinition,FeatureMembership
6668
true,checkStateUsageSpecialization,StateUsage,States::stateActions,Package,OwningMembership
6769
true,checkStateUsageExclusiveStateSpecialization,StateUsage,States::StateAction::exclusiveStates,StateUsage,FeatureMembership
@@ -86,20 +88,20 @@ true,checkConcernUsageFramedConcernSpecialization,ConcernUsage,Requirements::Req
8688
true,checkCaseUsageSpecialization,CaseUsage,Cases::cases,Package,OwningMembership
8789
true,checkCaseUsageSubcaseSpecialization,CaseUsage,Cases::Case::subcases,CaseUsage,FeatureMembership
8890
true,checkAnalysisCaseUsageSpecialization,AnalysisCaseUsage,AnalysisCases::analysisCases,Package,OwningMembership
89-
false,checkAnalysisCaseUsageSubAnalysisCaseSpecialization,AnalysisCaseUsage,AnalysisCases::AnalysisCase::subAnalysisCases,AnalysisCaseUsage,FeatureMembership
90-
false,checkAnalysisCaseUsageSubAnalysisCaseSpecialization,AnalysisCaseUsage,AnalysisCases::AnalysisCase::subAnalysisCases,AnalysisCaseDefinition,FeatureMembership
91+
true,checkAnalysisCaseUsageSubAnalysisCaseSpecialization,AnalysisCaseUsage,AnalysisCases::AnalysisCase::subAnalysisCases,AnalysisCaseUsage,FeatureMembership
92+
true,checkAnalysisCaseUsageSubAnalysisCaseSpecialization,AnalysisCaseUsage,AnalysisCases::AnalysisCase::subAnalysisCases,AnalysisCaseDefinition,FeatureMembership
9193
true,checkVerificationCaseUsageSpecialization,VerificationCaseUsage,VerificationCases::verificationCases,Package,OwningMembership
92-
false,checkVerificationCaseUsageSubVerificationCaseSpecialization,VerificationCaseUsage,VerificationCases::VerificationCase::subVerificationCases,VerificationCaseUsage,FeatureMembership
93-
false,checkVerificationCaseUsageSubVerificationCaseSpecialization,VerificationCaseUsage,VerificationCases::VerificationCase::subVerificationCases,VerificationCaseDefinition,FeatureMembership
94+
true,checkVerificationCaseUsageSubVerificationCaseSpecialization,VerificationCaseUsage,VerificationCases::VerificationCase::subVerificationCases,VerificationCaseUsage,FeatureMembership
95+
true,checkVerificationCaseUsageSubVerificationCaseSpecialization,VerificationCaseUsage,VerificationCases::VerificationCase::subVerificationCases,VerificationCaseDefinition,FeatureMembership
9496
true,checkUseCaseUsageSpecialization,UseCaseUsage,UseCases::useCases,Package,OwningMembership
9597
true,checkUseCaseUsageSubUseCaseSpecialization,UseCaseUsage,UseCases::UseCase::subUseCases,UseCaseUsage,FeatureMembership
9698
true,checkUseCaseUsageSubUseCaseSpecialization,UseCaseUsage,UseCases::UseCase::subUseCases,UseCaseDefinition,FeatureMembership
97-
false,checkIncludeUseCaseUsageSpecialization,IncludeUseCaseUsage,UseCases::UseCase::includedUseCases,UseCaseUsage,FeatureMembership
98-
false,checkIncludeUseCaseUsageSpecialization,IncludeUseCaseUsage,UseCases::UseCase::includedUseCases,UseCaseDefinition,FeatureMembership
99+
true,checkIncludeUseCaseUsageSpecialization,IncludeUseCaseUsage,UseCases::UseCase::includedUseCases,UseCaseUsage,FeatureMembership
100+
true,checkIncludeUseCaseUsageSpecialization,IncludeUseCaseUsage,UseCases::UseCase::includedUseCases,UseCaseDefinition,FeatureMembership
99101
true,checkViewUsageSpecialization,ViewUsage,Views::views,Package,OwningMembership
100102
true,checkViewUsageSubviewSpecialization,ViewUsage,Views::View::subviews,ViewUsage,FeatureMembership
101103
true,checkViewUsageSubviewSpecialization,ViewUsage,Views::View::subviews,ViewDefinition,FeatureMembership
102-
false,checkViewpointUsageSpecialization,ViewpointUsage,Views::viewpoints,Package,OwningMembership
104+
true,checkViewpointUsageSpecialization,ViewpointUsage,Views::viewpointChecks,Package,OwningMembership
103105
true,checkViewpointUsageViewpointSatisfactionSpecialization,ViewpointUsage,Views::View::viewpointSatisfactions,ViewDefinition,FeatureMembership
104106
true,checkViewpointUsageViewpointSatisfactionSpecialization,ViewpointUsage,Views::View::viewpointSatisfactions,ViewUsage,FeatureMembership
105107
true,checkRenderingUsageSpecialization,RenderingUsage,Views::renderings,Package,OwningMembership

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,12 @@ action def ControlNodeTest {
6565
action B1 {
6666
in b;
6767
}
68+
then M;
69+
6870
action B2 {
6971
in b;
7072
}
73+
then M;
74+
75+
merge M;
7176
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ action def DecisionTest {
5858
if x > 1 then A2;
5959
else A3;
6060

61-
then decide;
61+
then decide D;
6262
if true then A1;
6363
if false then A2;
6464

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/adapter/AnalysisCaseUsageAdapter.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*******************************************************************************
22
* SysML 2 Pilot Implementation
3-
* Copyright (c) 2021, 2023 Model Driven Solutions, Inc.
3+
* Copyright (c) 2021, 2023, 2025 Model Driven Solutions, Inc.
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU Lesser General Public License as published by
@@ -44,8 +44,9 @@ protected String getSubactionType() {
4444
}
4545

4646
public boolean isSubAnalysisCase() {
47-
Type owningType = getTarget().getOwningType();
48-
return isNonEntryExitComposite() &&
47+
AnalysisCaseUsage target = getTarget();
48+
Type owningType = target.getOwningType();
49+
return target.isComposite() &&
4950
(owningType instanceof AnalysisCaseDefinition || owningType instanceof AnalysisCaseUsage);
5051
}
5152

org.omg.sysml/src/org/omg/sysml/adapter/CalculationUsageAdapter.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,10 @@ protected String getSubactionType() {
4848
}
4949

5050
public boolean isSubcalculation() {
51-
/*
52-
* TODO: Update checkCalculationUsageSubcalculationSpecialization
53-
*
54-
* isNonEntryExitComposite check is not part of the OCL
55-
* See SYSML12-298
56-
*/
5751
CalculationUsage target = getTarget();
5852
Type owningType = target.getOwningType();
59-
return isNonEntryExitComposite() &&
60-
owningType instanceof CalculationDefinition || owningType instanceof CalculationUsage;
53+
return target.isComposite() &&
54+
(owningType instanceof CalculationDefinition || owningType instanceof CalculationUsage);
6155
}
6256

6357
@Override

org.omg.sysml/src/org/omg/sysml/adapter/CaseUsageAdapter.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,9 @@ protected String getSubactionType() {
5757
}
5858

5959
public boolean isSubcase() {
60-
/*
61-
* TODO: Update checkCaseUsageSubcaseSpecialization
62-
*
63-
* nonEntryExit part of the check is not reflected of the OCL
64-
* See SYSML21-298
65-
*/
6660
CaseUsage target = getTarget();
6761
Type owningType = target.getOwningType();
68-
return isNonEntryExitComposite() &&
62+
return target.isComposite() &&
6963
(owningType instanceof CaseDefinition || owningType instanceof CaseUsage);
7064
}
7165

org.omg.sysml/src/org/omg/sysml/adapter/ElementAdapterFactory.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ public ElementAdapter caseActionUsage(ActionUsage element) {
8282
return new ActionUsageAdapter(element);
8383
}
8484

85+
@Override
86+
public ElementAdapter caseAnalysisCaseUsage(AnalysisCaseUsage element) {
87+
return new AnalysisCaseUsageAdapter(element);
88+
}
89+
8590
@Override
8691
public ElementAdapter caseAnnotatingElement(AnnotatingElement element) {
8792
return new AnnotatingElementAdapter(element);
@@ -597,6 +602,11 @@ public ElementAdapter caseUseCaseUsage(UseCaseUsage element) {
597602
return new UseCaseUsageAdapter(element);
598603
}
599604

605+
@Override
606+
public ElementAdapter caseVerificationCaseUsage(VerificationCaseUsage element) {
607+
return new VerificationCaseUsageAdapter(element);
608+
}
609+
600610
@Override
601611
public ElementAdapter caseViewUsage(ViewUsage element) {
602612
return new ViewUsageAdapter(element);

0 commit comments

Comments
 (0)