Skip to content

Commit 240fba1

Browse files
committed
KERML11-76 Fixed diamond inheritance problems in kernel libraries.
Kernel Semantic Library - FeatureReferencePerformances - Objects - Observation Kernel Function Library - VectorFunctions
1 parent 7f8acc9 commit 240fba1

4 files changed

Lines changed: 23 additions & 8 deletions

File tree

sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,9 @@ standard library package VectorFunctions {
179179
}
180180
function CartesianThreeVectorOf specializes CartesianVectorOf {
181181
in components: Real[3] ordered nonunique;
182-
return : CartesianThreeVectorValue[1];
182+
return : CartesianThreeVectorValue[1] {
183+
feature :>> CartesianVectorOf::result::dimension, CartesianThreeVectorValue::dimension;
184+
}
183185
}
184186

185187
feature cartesianZeroVector: CartesianVectorValue[3] =

sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ standard library package FeatureReferencingPerformances {
133133
*/
134134

135135
in feature onOccurrence : Evaluation redefines onOccurrence {
136-
protected monitoredOccurrence : Evaluation [1] redefines monitoredOccurrence {
137-
out result : Anything[*] redefines result, monitoredFeature;
136+
protected expr monitoredOccurrence : Evaluation [1] redefines monitoredOccurrence {
137+
return result : Anything[*] redefines result, monitoredFeature;
138138
}
139139
}
140140
}
@@ -147,7 +147,9 @@ standard library package FeatureReferencingPerformances {
147147
*/
148148

149149
in bool redefines onOccurrence {
150-
protected bool redefines monitoredOccurrence[1];
150+
protected bool redefines monitoredOccurrence[1] {
151+
return result : Boolean [1];
152+
}
151153
}
152154
out redefines afterValues : Boolean [1];
153155
out redefines beforeValues : Boolean [1];
@@ -167,10 +169,16 @@ standard library package FeatureReferencingPerformances {
167169
feature isToTrue : Boolean [1] default true;
168170
out afterValues: Boolean[1] redefines values = isToTrue;
169171
private feature monitor1 : BooleanEvaluationResultMonitorPerformance [1] {
170-
feature redefines endWhen : HappensJustBefore;
172+
feature redefines endWhen : HappensJustBefore {
173+
end feature earlierOccurrence;
174+
end feature laterOccurrence;
175+
}
171176
}
172177
private feature monitor2 : BooleanEvaluationResultMonitorPerformance [1] {
173-
feature redefines endWhen : HappensJustBefore;
178+
feature redefines endWhen : HappensJustBefore {
179+
end feature earlierOccurrence;
180+
end feature laterOccurrence;
181+
}
174182
}
175183

176184
private connector : HappensJustBefore from [1] monitor1 to [0..1] monitor2;

sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,13 @@ standard library package Objects {
165165
* inner space dimension of structured space object is the highest of their cells.
166166
*/
167167

168-
abstract portion feature structuredSpaceObjectCells : StructuredSpaceObject[1..*] subsets Occurrence::spaceSlices
168+
abstract portion feature structuredSpaceObjectCells : StructuredSpaceObject[1..*] subsets Occurrence::spaceSlices
169169
{ feature cellOrientation : Integer [0..1];
170170
inv { notEmpty(cellOrientation) implies (cellOrientation >= -1 & cellOrientation <= 1) }
171171
}
172172

173173
portion feature faces : Surface[0..*] ordered subsets structuredSpaceObjectCells {
174+
feature redefines Surface::innerSpaceDimension, structuredSpaceObjectCells::innerSpaceDimension;
174175
feature redefines edges subsets StructuredSpaceObject::edges;
175176
feature redefines vertices subsets StructuredSpaceObject::vertices;
176177
derived feature redefines spaceBoundary;
@@ -179,13 +180,16 @@ standard library package Objects {
179180
}
180181

181182
portion feature edges : Curve[0..*] ordered subsets structuredSpaceObjectCells {
183+
feature redefines Curve::innerSpaceDimension, structuredSpaceObjectCells::innerSpaceDimension;
182184
feature redefines vertices subsets StructuredSpaceObject::vertices;
183185
derived feature redefines spaceBoundary;
184186
inv { isEmpty(spaceBoundary) == isEmpty(vertices) }
185187
inv { notEmpty(spaceBoundary) implies contains(spaceBoundary.unionsOf, vertices) }
186188
}
187189

188-
portion feature vertices : Point[0..*] ordered subsets structuredSpaceObjectCells;
190+
portion feature vertices : Point[0..*] ordered subsets structuredSpaceObjectCells{
191+
feature redefines Point::innerSpaceDimension, structuredSpaceObjectCells::innerSpaceDimension;
192+
}
189193

190194
derived feature redefines innerSpaceDimension =
191195
if notEmpty(faces) ? 2 else if notEmpty(edges) ? 1 else 0;

sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ standard library package Observation {
9292
end feature source {
9393
feature redefines sourceOutput = changeSignal;
9494
}
95+
end feature target;
9596
}
9697
}
9798

0 commit comments

Comments
 (0)