Skip to content

Commit 5454315

Browse files
authored
Merge pull request #665 from Systems-Modeling/ST6RI-843
ST6RI-843 Annotate adapter transformation code with implemented semantic constraints
2 parents d102053 + eb441e8 commit 5454315

File tree

66 files changed

+792
-88
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+792
-88
lines changed

kerml/src/examples/Simple Tests/Associations.kerml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
package Associations {
1+
package Associations {
2+
datatype X;
3+
class Y;
4+
25
assoc A {
3-
end x;
4-
end [1..*] feature y;
6+
end x_cross [1..1] feature x : X;
7+
end y_cross [1..*] feature y : Y;
58
}
69

710
assoc B specializes A {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public void computeImplicitGeneralTypes() {
4545
@Override
4646
public void addDefaultGeneralType() {
4747
// Don't add a default type for a transition trigger action because such
48-
// an action will always redefine TransitionAction::accepter anyway.
48+
// an action will always redefine TransitionAction::accepter anyway: checkAcceptActionUsageTriggerActionSpecialization
4949
if (!isTriggerAction()) {
5050
super.addDefaultGeneralType();
5151
}

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ public ActionUsage getTarget() {
4848

4949
// Implicit Generalization
5050

51+
/**
52+
* @satisfies checkAcceptActionUsageTriggerActionSpecialization
53+
* @satisfies checkStepEnclosedPerformanceSpecialization
54+
* @satisfies checkStepOwnedPerformanceSpecialization
55+
* @satisfies checkStepSubperformanceSpecialization
56+
*/
5157
@Override
5258
public void addDefaultGeneralType() {
5359
super.addDefaultGeneralType();
@@ -67,6 +73,11 @@ public void addDefaultGeneralType() {
6773
}
6874
}
6975

76+
/**
77+
* @satisfies checkAcceptActionUsageSpecialization
78+
* @satisfies checkSendActionUsageSpecialization
79+
* @satisfies checkWhileLoopActionUsageSpecialization
80+
*/
7081
@Override
7182
protected String getDefaultSupertype() {
7283
return getDefaultSupertype("base");
@@ -77,6 +88,22 @@ protected boolean isSuboccurrence() {
7788
return super.isSuboccurrence() && !isActionOwnedComposite();
7889
}
7990

91+
/**
92+
* @satisfies checkActionUsageSubactionSpecialization
93+
* @satisfies checkAcceptActionUsageSubactionSpecialization
94+
* @satisfies checkDecisionNodeSpecialization
95+
* @satisfies checkForkNodeSpecialization
96+
* @satisfies checkForLoopActionUsageSubactionSpecialization
97+
* @satisfies checkIfActionUsageSubactionSpecialization
98+
* @satisfies checkJoinNodeSpecialization
99+
* @satisfies checkMergeNodeSpecialization
100+
* @satisfies checkAssignmentActionUsageSubactionSpecialization
101+
* @satisfies checkSendActionUsageSubactionSpecialization
102+
* @satisfies checkWhileLoopActionUsageSubactionSpecialization
103+
* @satisfies checkActionUsageOwnedActionSpecialization
104+
* @satisfies checkStateUsageOwnedStateSpecialization
105+
*
106+
*/
80107
protected String getSubactionType() {
81108
return isActionOwnedComposite()? "subaction":
82109
isPartOwnedComposite()? "ownedAction":
@@ -96,6 +123,7 @@ public boolean isPerformedAction() {
96123
*/
97124
@Override
98125
public boolean isComputeRedefinitions() {
126+
//checkActionUsageStateActionRedefinition
99127
String redefinedFeature = getRedefinedFeature(getTarget());
100128
return redefinedFeature != null? isComputeRedefinitions:
101129
super.isComputeRedefinitions();
@@ -110,6 +138,9 @@ protected List<? extends Feature> getRelevantFeatures(Type type, Element skip) {
110138
Collections.singletonList((Feature)getLibraryType(redefinedFeature));
111139
}
112140

141+
/**
142+
* @satisfies checkTransitionUsageTransitionFeatureSpecialization
143+
*/
113144
protected static String getRedefinedFeature(Feature target) {
114145
FeatureMembership membership = target.getOwningFeatureMembership();
115146
String kind =

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public AnalysisCaseUsage getTarget() {
3838

3939
@Override
4040
protected String getSubactionType() {
41+
//checkAnalysisCaseUsageSpecialization
42+
//checkAnalysisCaseUsageSubAnalysisCaseSpecialization
4143
return isSubAnalysisCase()? "subAnalysisCase": super.getSubactionType();
4244
}
4345

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public AssertConstraintUsage getTarget() {
3636
return (AssertConstraintUsage)super.getTarget();
3737
}
3838

39+
/**
40+
* @satisfies checkAssertConstraintUsageSpecialization
41+
*/
3942
@Override
4043
protected String getDefaultSupertype() {
4144
return getTarget().isNegated()?

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ public AssignmentActionUsage getTarget() {
3434
return (AssignmentActionUsage)super.getTarget();
3535
}
3636

37+
/**
38+
* @satisfies checkAssignmentActionUsageReferentRedefinition
39+
* @satisfies checkAssignmentActionUsageAccessedFeatureRedefinition
40+
* @satisfies checkAssignmentActionUsageStartingAtRedefinition
41+
*/
3742
protected void addTargetRedefinitions() {
3843
AssignmentActionUsage target = getTarget();
3944
addFeatureWriteTypes(TypeUtil.getOwnedParametersOf(target), target.getReferent());

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,13 @@ public AssociationAdapter(Association element) {
3333
public Association getTarget() {
3434
return (Association)super.getTarget();
3535
}
36-
36+
37+
/**
38+
* @satisfies checkAssociationSpecialization
39+
* @satisfies checkAssociationBinarySpecialization
40+
* @satisfies checkAssociationStructureSpecialization
41+
* @satisfies checkAssociationStructureBinarySpecialization
42+
*/
3743
@Override
3844
protected String getDefaultSupertype() {
3945
return getTarget().getOwnedEndFeature().size() != 2 ?

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public CalculationDefinition getTarget() {
3333
return (CalculationDefinition)super.getTarget();
3434
}
3535

36+
/**
37+
* @satisfies checkFunctionResultBindingConnector
38+
*/
3639
@Override
3740
public void doTransform() {
3841
super.doTransform();

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,22 @@ public CalculationUsage getTarget() {
3838
return (CalculationUsage)super.getTarget();
3939
}
4040

41+
/**
42+
* @satisfies checkCalculationUsageSpecialization
43+
* @satisfies checkCalculationUsageSubcalculationSpecialization
44+
*/
4145
@Override
4246
protected String getSubactionType() {
4347
return isSubcalculation()? "subcalculation": super.getSubactionType();
4448
}
4549

4650
public boolean isSubcalculation() {
51+
/*
52+
* TODO: Update checkCalculationUsageSubcalculationSpecialization
53+
*
54+
* isNonEntryExitComposite check is not part of the OCL
55+
* See SYSML12-298
56+
*/
4757
CalculationUsage target = getTarget();
4858
Type owningType = target.getOwningType();
4959
return isNonEntryExitComposite() &&

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*******************************************************************************
22
* SysML 2 Pilot Implementation
3-
* Copyright (c) 2021, 2023-2024 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
@@ -47,12 +47,22 @@ public boolean hasRelevantSubjectParameter() {
4747

4848
// Implicit Generalization
4949

50+
/**
51+
* @satisfies checkCaseUsageSpecialization
52+
* @satisfies checkCaseUsageSubcaseSpecialization
53+
*/
5054
@Override
5155
protected String getSubactionType() {
5256
return isSubcase()? "subcase": super.getSubactionType();
5357
}
5458

5559
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+
*/
5666
CaseUsage target = getTarget();
5767
Type owningType = target.getOwningType();
5868
return isNonEntryExitComposite() &&

0 commit comments

Comments
 (0)