sysml-validate 0.10.18 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/LICENSE +27 -27
  2. package/README.md +200 -200
  3. package/out/main.js +596 -141
  4. package/out/main.js.map +4 -4
  5. package/package.json +57 -57
  6. package/resources/sysml.dimension-table.json +1 -1
  7. package/resources/sysml.library/Domain Libraries/Analysis/.meta.json +9 -9
  8. package/resources/sysml.library/Domain Libraries/Analysis/.project.json +26 -26
  9. package/resources/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +33 -33
  10. package/resources/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +118 -118
  11. package/resources/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -143
  12. package/resources/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +170 -170
  13. package/resources/sysml.library/Domain Libraries/Cause and Effect/.meta.json +7 -7
  14. package/resources/sysml.library/Domain Libraries/Cause and Effect/.project.json +22 -22
  15. package/resources/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +82 -82
  16. package/resources/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -81
  17. package/resources/sysml.library/Domain Libraries/Geometry/.meta.json +7 -7
  18. package/resources/sysml.library/Domain Libraries/Geometry/.project.json +26 -26
  19. package/resources/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +898 -898
  20. package/resources/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +167 -167
  21. package/resources/sysml.library/Domain Libraries/Metadata/.meta.json +9 -9
  22. package/resources/sysml.library/Domain Libraries/Metadata/.project.json +18 -18
  23. package/resources/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +77 -77
  24. package/resources/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +142 -142
  25. package/resources/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +38 -38
  26. package/resources/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +99 -99
  27. package/resources/sysml.library/Domain Libraries/Quantities and Units/.meta.json +28 -28
  28. package/resources/sysml.library/Domain Libraries/Quantities and Units/.project.json +22 -22
  29. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -42
  30. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -439
  31. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -2726
  32. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -206
  33. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -1991
  34. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -1353
  35. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -1223
  36. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -2333
  37. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -958
  38. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -1537
  39. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -1564
  40. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -1169
  41. package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -1256
  42. package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -30
  43. package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -526
  44. package/resources/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -107
  45. package/resources/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -70
  46. package/resources/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -378
  47. package/resources/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -48
  48. package/resources/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +49 -49
  49. package/resources/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -274
  50. package/resources/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -260
  51. package/resources/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -62
  52. package/resources/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +7 -7
  53. package/resources/sysml.library/Domain Libraries/Requirement Derivation/.project.json +18 -18
  54. package/resources/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +62 -62
  55. package/resources/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +38 -38
  56. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +8 -8
  57. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +10 -10
  58. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +176 -176
  59. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -23
  60. package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +63 -63
  61. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +22 -22
  62. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +14 -14
  63. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +79 -79
  64. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -22
  65. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -68
  66. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -47
  67. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +116 -116
  68. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +42 -42
  69. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -43
  70. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -27
  71. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +42 -42
  72. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +153 -153
  73. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -49
  74. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -56
  75. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +32 -32
  76. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +110 -110
  77. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -25
  78. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +34 -34
  79. package/resources/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +272 -272
  80. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +21 -21
  81. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +14 -14
  82. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +94 -94
  83. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +155 -155
  84. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +134 -134
  85. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +189 -189
  86. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -483
  87. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +66 -66
  88. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +57 -57
  89. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -212
  90. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +160 -160
  91. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -992
  92. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +292 -292
  93. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +196 -196
  94. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +144 -144
  95. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +280 -280
  96. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +65 -65
  97. package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +187 -187
  98. package/resources/sysml.library/LICENSE +276 -276
  99. package/resources/sysml.library/NOTICE.md +20 -20
  100. package/resources/sysml.library/Systems Library/Actions.sysml +556 -556
  101. package/resources/sysml.library/Systems Library/Allocations.sysml +28 -28
  102. package/resources/sysml.library/Systems Library/AnalysisCases.sysml +37 -37
  103. package/resources/sysml.library/Systems Library/Attributes.sysml +24 -24
  104. package/resources/sysml.library/Systems Library/Calculations.sysml +36 -36
  105. package/resources/sysml.library/Systems Library/Cases.sysml +70 -70
  106. package/resources/sysml.library/Systems Library/Connections.sysml +59 -59
  107. package/resources/sysml.library/Systems Library/Constraints.sysml +43 -43
  108. package/resources/sysml.library/Systems Library/Flows.sysml +125 -125
  109. package/resources/sysml.library/Systems Library/Interfaces.sysml +88 -88
  110. package/resources/sysml.library/Systems Library/Items.sysml +152 -152
  111. package/resources/sysml.library/Systems Library/Metadata.sysml +31 -31
  112. package/resources/sysml.library/Systems Library/Parts.sysml +80 -80
  113. package/resources/sysml.library/Systems Library/Ports.sysml +53 -53
  114. package/resources/sysml.library/Systems Library/Requirements.sysml +193 -193
  115. package/resources/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -123
  116. package/resources/sysml.library/Systems Library/States.sysml +102 -102
  117. package/resources/sysml.library/Systems Library/SysML.sysml +539 -539
  118. package/resources/sysml.library/Systems Library/UseCases.sysml +56 -56
  119. package/resources/sysml.library/Systems Library/VerificationCases.sysml +102 -102
  120. package/resources/sysml.library/Systems Library/Views.sysml +163 -163
  121. package/resources/sysml.library.index.json +1 -1
@@ -1,293 +1,293 @@
1
- standard library package Performances {
2
- doc
3
- /*
4
- * This package defines classifiers and features that related to the typing of performances and evaluations.
5
- */
6
-
7
- private import Base::Anything;
8
- private import Base::things;
9
- private import Occurrences::Occurrence;
10
- private import Occurrences::occurrences;
11
- private import Occurrences::HappensDuring;
12
- private import Objects::Object;
13
- private import Links::BinaryLink;
14
- private import Metaobjects::Metaobject;
15
- private import Transfers::Transfer;
16
- private import Transfers::transfers;
17
- private import Transfers::TransferBefore;
18
- private import Transfers::transfersBefore;
19
- private import ScalarValues::*;
20
- private import SequenceFunctions::includes;
21
-
22
- abstract behavior Performance specializes Occurrence disjoint from Object {
23
- doc
24
- /*
25
- * Performance is the most general class of behavioral Occurrences that may be performed over time.
26
- */
27
-
28
- feature self: Performance redefines Occurrence::self;
29
-
30
- feature involvedObjects: Object[0..*] {
31
- doc
32
- /*
33
- * Objects that are involved in this Performance.
34
- */
35
- }
36
-
37
- feature performers: Object[0..*] subsets involvedObjects {
38
- doc
39
- /*
40
- * Objects that enact this Performance.
41
- */
42
- }
43
-
44
- feature redefines isDispatch default true;
45
- feature redefines dispatchScope default thisPerformance;
46
-
47
- step enclosedPerformances: Performance[0..*] subsets performances, timeEnclosedOccurrences
48
- intersects performances, timeEnclosedOccurrences {
49
- doc
50
- /*
51
- * timeEnclosedOccurrences of this Performance that are also Performances.
52
- */
53
- }
54
-
55
- feature thisPerformance: Performance [1] default self {
56
- doc
57
- /*
58
- * Defaults to the root of the subperformance composition tree.
59
- */
60
- }
61
- connector :HappensDuring from [1] self to [1] thisPerformance;
62
-
63
- composite step subperformances: Performance[0..*] subsets enclosedPerformances, suboccurrences
64
- intersects enclosedPerformances, suboccurrences {
65
- doc
66
- /*
67
- * enclosedPerformances that are composite.
68
- */
69
-
70
- feature redefines this default (that as Performance).this {
71
- doc
72
- /*
73
- * The default "this" context of a subperformance is the same as that of its owning Performance.
74
- * This means that the context for any Performance that is in a composition tree rooted
75
- * in a Performance that is not itself owned by an Object is the root Performance. If the
76
- * root Performance is an ownedPerformance of an Object, then that Object is the context.
77
- */
78
- }
79
-
80
- feature redefines thisPerformance default (that as Performance).thisPerformance;
81
- }
82
- }
83
-
84
- abstract function Evaluation specializes Performance {
85
- doc
86
- /*
87
- * Evaluation is the most general class of functions that may be evaluated to compute
88
- * a result.
89
- */
90
-
91
- return result: Anything[0..*] nonunique;
92
- }
93
-
94
- abstract predicate BooleanEvaluation specializes Evaluation {
95
- doc
96
- /*
97
- * BooleanEvaluation is a specialization of Evaluation that is the most general class of
98
- * Predicates that may be evaluated to produce a Boolean truth value.
99
- */
100
-
101
- return : Boolean[1];
102
- }
103
-
104
- abstract function MetadataAccessEvaluation specializes Evaluation {
105
- doc
106
- /*
107
- * MetadataAccessEvaluation is a specialization of Evaluation for the case of MetadataAccessExpressions.
108
- */
109
-
110
- return : Metaobject[1..*];
111
- }
112
-
113
- abstract function LiteralEvaluation specializes Evaluation {
114
- doc
115
- /*
116
- * LiteralEvaluation is a specialization of Evaluation for the case of LiteralExpressions.
117
- */
118
-
119
- return : ScalarValue[1];
120
- }
121
-
122
- abstract predicate LiteralBooleanEvaluation specializes LiteralEvaluation, BooleanEvaluation
123
- intersects LiteralEvaluation, BooleanEvaluation {
124
- doc
125
- /*
126
- * LiteralBooleanEvaluation is a specialization of LiteralEvaluation for the case of LiteralBooleans.
127
- * It is also a predicate and thus a specialization of BooleanEvaluation.
128
- */
129
-
130
- return : Boolean[1];
131
- }
132
- abstract function LiteralIntegerEvaluation specializes LiteralEvaluation {
133
- doc
134
- /*
135
- * LiteralIntegerEvaluation is a specialization of LiteralEvaluation for the case of LiteralIntegers.
136
- */
137
-
138
- return : Integer[1];
139
- }
140
-
141
- abstract function LiteralRationalEvaluation specializes LiteralEvaluation {
142
- doc
143
- /*
144
- * LiteralRationalEvaluation is a specialization of LiteralEvaluation for the case of LiteralRationals.
145
- * (Note: Return type is Real to allow easy type conformance of LiteralRationals when a Real result is expected.)
146
- */
147
-
148
- return : Real[1];
149
- }
150
-
151
- abstract function LiteralStringEvaluation specializes LiteralEvaluation {
152
- doc
153
- /*
154
- * LiteralStringEvaluation is a specialization of LiteralEvaluation for the case of LiteralStrings.
155
- */
156
-
157
- return : String[1];
158
- }
159
-
160
- function NullEvaluation specializes Evaluation {
161
- doc
162
- /*
163
- * NullEvaluation is a specialization of Evaluation for the case of NullExpressions.
164
- */
165
-
166
- return : Anything[0..0];
167
- }
168
-
169
- assoc all InvolvedIn specializes BinaryLink {
170
- doc
171
- /*
172
- * InvolvedIn asserts that the involvedObject is involved in the Behavior carried out by the
173
- * involvingPerformance.
174
- */
175
-
176
- end feature involvedObject: Object redefines source crosses involvingPerformance.involvedObjects;
177
- end feature involvingPerformance: Performance redefines target crosses involvedObject.involvingPerformances;
178
- }
179
-
180
- assoc all Performs specializes InvolvedIn {
181
- doc
182
- /*
183
- * Performs asserts that the performer enacts the Behavior carried out by the performance.
184
- */
185
-
186
- end feature performerObject: Object redefines involvedObject crosses performance.performers;
187
- end feature performance: Performance redefines involvingPerformance crosses performerObject.enactedPerformances;
188
- }
189
-
190
- abstract step performances: Performance[0..*] nonunique subsets occurrences {
191
- doc
192
- /*
193
- * performances is the most general feature for performances of Behaviors.
194
- */
195
- }
196
-
197
- abstract expr evaluations: Evaluation[0..*] nonunique subsets performances {
198
- doc
199
- /*
200
- * evaluations is a specialization of performances for evaluations of Functions.
201
- */
202
- }
203
-
204
- abstract expr constructorEvaluations [0..*] nonunique subsets evaluations {
205
- doc
206
- /*
207
- * constructorEvaluations is a specialization of evaluations that restricts the multiplicity
208
- * of its result parameter to 1..1, requiring a constructorEvaluation to result in a single value.
209
- */
210
-
211
- return result [1..1];
212
- }
213
-
214
- abstract expr booleanEvaluations: BooleanEvaluation[0..*] nonunique subsets evaluations {
215
- doc
216
- /*
217
- * booleanEvaluations is a specialization of evaluations restricted to type BooleanEvaluation.
218
- */
219
- }
220
-
221
- abstract expr trueEvaluations subsets booleanEvaluations {
222
- doc
223
- /*
224
- * trueEvaluations is a subset of booleanEvaluations that result in true. It is the most general
225
- * feature of invariants that are not negated.
226
- */
227
-
228
- private feature trueValue = true;
229
- binding result = trueValue;
230
- }
231
-
232
- abstract expr falseEvaluations subsets booleanEvaluations {
233
- doc
234
- /*
235
- * falseEvaluations is a subset of booleanEvaluations that result in false. It is the most general
236
- * feature of invariants that are negated.
237
- */
238
-
239
- private feature falseValue = false;
240
- binding result = falseValue;
241
- }
242
-
243
- abstract expr metadataAccessEvaluations: MetadataAccessEvaluation[0..*] nonunique subsets evaluations {
244
- doc
245
- /*
246
- * metadataAccessEvaluations is a specialization of evaluations restricted to type MetadataAccessEvaluation.
247
- */
248
- }
249
-
250
- abstract expr literalEvaluations: LiteralEvaluation[0..*] nonunique subsets evaluations {
251
- doc
252
- /*
253
- * literalEvaluations is a specialization of evaluations restricted to type LiteralEvaluation.
254
- */
255
- }
256
-
257
- abstract expr literalBooleanEvaluations: LiteralBooleanEvaluation[0..*] nonunique subsets literalEvaluations, booleanEvaluations
258
- intersects literalEvaluations, booleanEvaluations {
259
- doc
260
- /*
261
- * literaBooleanlEvaluations is a specialization of literalEvaluations and booleanEvaluations restricted
262
- * to type LiteralBooleanEvaluation.
263
- */
264
- }
265
-
266
- abstract expr literalIntegerEvaluations: LiteralIntegerEvaluation[0..*] nonunique subsets literalEvaluations {
267
- doc
268
- /*
269
- * literalEvaluations is a specialization of evaluations restricted to type LiteralEvaluation.
270
- */
271
- }
272
-
273
- abstract expr literalRationalEvaluations: LiteralRationalEvaluation[0..*] nonunique subsets literalEvaluations {
274
- doc
275
- /*
276
- * literalRationalEvaluations is a specialization of literalEvaluations restricted to type LiteralRationalEvaluation.
277
- */
278
- }
279
-
280
- abstract expr literalStringEvaluations: LiteralStringEvaluation[0..*] nonunique subsets literalEvaluations {
281
- doc
282
- /*
283
- * literalStringEvaluations is a specialization of literalEvaluations restricted to type LiteralStringEvaluation.
284
- */
285
- }
286
-
287
- abstract expr nullEvaluations: NullEvaluation[0..*] nonunique subsets evaluations {
288
- doc
289
- /*
290
- * nullEvaluations is a specialization of evaluations restricted to type NullEvaluation.
291
- */
292
- }
1
+ standard library package Performances {
2
+ doc
3
+ /*
4
+ * This package defines classifiers and features that related to the typing of performances and evaluations.
5
+ */
6
+
7
+ private import Base::Anything;
8
+ private import Base::things;
9
+ private import Occurrences::Occurrence;
10
+ private import Occurrences::occurrences;
11
+ private import Occurrences::HappensDuring;
12
+ private import Objects::Object;
13
+ private import Links::BinaryLink;
14
+ private import Metaobjects::Metaobject;
15
+ private import Transfers::Transfer;
16
+ private import Transfers::transfers;
17
+ private import Transfers::TransferBefore;
18
+ private import Transfers::transfersBefore;
19
+ private import ScalarValues::*;
20
+ private import SequenceFunctions::includes;
21
+
22
+ abstract behavior Performance specializes Occurrence disjoint from Object {
23
+ doc
24
+ /*
25
+ * Performance is the most general class of behavioral Occurrences that may be performed over time.
26
+ */
27
+
28
+ feature self: Performance redefines Occurrence::self;
29
+
30
+ feature involvedObjects: Object[0..*] {
31
+ doc
32
+ /*
33
+ * Objects that are involved in this Performance.
34
+ */
35
+ }
36
+
37
+ feature performers: Object[0..*] subsets involvedObjects {
38
+ doc
39
+ /*
40
+ * Objects that enact this Performance.
41
+ */
42
+ }
43
+
44
+ feature redefines isDispatch default true;
45
+ feature redefines dispatchScope default thisPerformance;
46
+
47
+ step enclosedPerformances: Performance[0..*] subsets performances, timeEnclosedOccurrences
48
+ intersects performances, timeEnclosedOccurrences {
49
+ doc
50
+ /*
51
+ * timeEnclosedOccurrences of this Performance that are also Performances.
52
+ */
53
+ }
54
+
55
+ feature thisPerformance: Performance [1] default self {
56
+ doc
57
+ /*
58
+ * Defaults to the root of the subperformance composition tree.
59
+ */
60
+ }
61
+ connector :HappensDuring from [1] self to [1] thisPerformance;
62
+
63
+ composite step subperformances: Performance[0..*] subsets enclosedPerformances, suboccurrences
64
+ intersects enclosedPerformances, suboccurrences {
65
+ doc
66
+ /*
67
+ * enclosedPerformances that are composite.
68
+ */
69
+
70
+ feature redefines this default (that as Performance).this {
71
+ doc
72
+ /*
73
+ * The default "this" context of a subperformance is the same as that of its owning Performance.
74
+ * This means that the context for any Performance that is in a composition tree rooted
75
+ * in a Performance that is not itself owned by an Object is the root Performance. If the
76
+ * root Performance is an ownedPerformance of an Object, then that Object is the context.
77
+ */
78
+ }
79
+
80
+ feature redefines thisPerformance default (that as Performance).thisPerformance;
81
+ }
82
+ }
83
+
84
+ abstract function Evaluation specializes Performance {
85
+ doc
86
+ /*
87
+ * Evaluation is the most general class of functions that may be evaluated to compute
88
+ * a result.
89
+ */
90
+
91
+ return result: Anything[0..*] nonunique;
92
+ }
93
+
94
+ abstract predicate BooleanEvaluation specializes Evaluation {
95
+ doc
96
+ /*
97
+ * BooleanEvaluation is a specialization of Evaluation that is the most general class of
98
+ * Predicates that may be evaluated to produce a Boolean truth value.
99
+ */
100
+
101
+ return : Boolean[1];
102
+ }
103
+
104
+ abstract function MetadataAccessEvaluation specializes Evaluation {
105
+ doc
106
+ /*
107
+ * MetadataAccessEvaluation is a specialization of Evaluation for the case of MetadataAccessExpressions.
108
+ */
109
+
110
+ return : Metaobject[1..*];
111
+ }
112
+
113
+ abstract function LiteralEvaluation specializes Evaluation {
114
+ doc
115
+ /*
116
+ * LiteralEvaluation is a specialization of Evaluation for the case of LiteralExpressions.
117
+ */
118
+
119
+ return : ScalarValue[1];
120
+ }
121
+
122
+ abstract predicate LiteralBooleanEvaluation specializes LiteralEvaluation, BooleanEvaluation
123
+ intersects LiteralEvaluation, BooleanEvaluation {
124
+ doc
125
+ /*
126
+ * LiteralBooleanEvaluation is a specialization of LiteralEvaluation for the case of LiteralBooleans.
127
+ * It is also a predicate and thus a specialization of BooleanEvaluation.
128
+ */
129
+
130
+ return : Boolean[1];
131
+ }
132
+ abstract function LiteralIntegerEvaluation specializes LiteralEvaluation {
133
+ doc
134
+ /*
135
+ * LiteralIntegerEvaluation is a specialization of LiteralEvaluation for the case of LiteralIntegers.
136
+ */
137
+
138
+ return : Integer[1];
139
+ }
140
+
141
+ abstract function LiteralRationalEvaluation specializes LiteralEvaluation {
142
+ doc
143
+ /*
144
+ * LiteralRationalEvaluation is a specialization of LiteralEvaluation for the case of LiteralRationals.
145
+ * (Note: Return type is Real to allow easy type conformance of LiteralRationals when a Real result is expected.)
146
+ */
147
+
148
+ return : Real[1];
149
+ }
150
+
151
+ abstract function LiteralStringEvaluation specializes LiteralEvaluation {
152
+ doc
153
+ /*
154
+ * LiteralStringEvaluation is a specialization of LiteralEvaluation for the case of LiteralStrings.
155
+ */
156
+
157
+ return : String[1];
158
+ }
159
+
160
+ function NullEvaluation specializes Evaluation {
161
+ doc
162
+ /*
163
+ * NullEvaluation is a specialization of Evaluation for the case of NullExpressions.
164
+ */
165
+
166
+ return : Anything[0..0];
167
+ }
168
+
169
+ assoc all InvolvedIn specializes BinaryLink {
170
+ doc
171
+ /*
172
+ * InvolvedIn asserts that the involvedObject is involved in the Behavior carried out by the
173
+ * involvingPerformance.
174
+ */
175
+
176
+ end feature involvedObject: Object redefines source crosses involvingPerformance.involvedObjects;
177
+ end feature involvingPerformance: Performance redefines target crosses involvedObject.involvingPerformances;
178
+ }
179
+
180
+ assoc all Performs specializes InvolvedIn {
181
+ doc
182
+ /*
183
+ * Performs asserts that the performer enacts the Behavior carried out by the performance.
184
+ */
185
+
186
+ end feature performerObject: Object redefines involvedObject crosses performance.performers;
187
+ end feature performance: Performance redefines involvingPerformance crosses performerObject.enactedPerformances;
188
+ }
189
+
190
+ abstract step performances: Performance[0..*] nonunique subsets occurrences {
191
+ doc
192
+ /*
193
+ * performances is the most general feature for performances of Behaviors.
194
+ */
195
+ }
196
+
197
+ abstract expr evaluations: Evaluation[0..*] nonunique subsets performances {
198
+ doc
199
+ /*
200
+ * evaluations is a specialization of performances for evaluations of Functions.
201
+ */
202
+ }
203
+
204
+ abstract expr constructorEvaluations [0..*] nonunique subsets evaluations {
205
+ doc
206
+ /*
207
+ * constructorEvaluations is a specialization of evaluations that restricts the multiplicity
208
+ * of its result parameter to 1..1, requiring a constructorEvaluation to result in a single value.
209
+ */
210
+
211
+ return result [1..1];
212
+ }
213
+
214
+ abstract expr booleanEvaluations: BooleanEvaluation[0..*] nonunique subsets evaluations {
215
+ doc
216
+ /*
217
+ * booleanEvaluations is a specialization of evaluations restricted to type BooleanEvaluation.
218
+ */
219
+ }
220
+
221
+ abstract expr trueEvaluations subsets booleanEvaluations {
222
+ doc
223
+ /*
224
+ * trueEvaluations is a subset of booleanEvaluations that result in true. It is the most general
225
+ * feature of invariants that are not negated.
226
+ */
227
+
228
+ private feature trueValue = true;
229
+ binding result = trueValue;
230
+ }
231
+
232
+ abstract expr falseEvaluations subsets booleanEvaluations {
233
+ doc
234
+ /*
235
+ * falseEvaluations is a subset of booleanEvaluations that result in false. It is the most general
236
+ * feature of invariants that are negated.
237
+ */
238
+
239
+ private feature falseValue = false;
240
+ binding result = falseValue;
241
+ }
242
+
243
+ abstract expr metadataAccessEvaluations: MetadataAccessEvaluation[0..*] nonunique subsets evaluations {
244
+ doc
245
+ /*
246
+ * metadataAccessEvaluations is a specialization of evaluations restricted to type MetadataAccessEvaluation.
247
+ */
248
+ }
249
+
250
+ abstract expr literalEvaluations: LiteralEvaluation[0..*] nonunique subsets evaluations {
251
+ doc
252
+ /*
253
+ * literalEvaluations is a specialization of evaluations restricted to type LiteralEvaluation.
254
+ */
255
+ }
256
+
257
+ abstract expr literalBooleanEvaluations: LiteralBooleanEvaluation[0..*] nonunique subsets literalEvaluations, booleanEvaluations
258
+ intersects literalEvaluations, booleanEvaluations {
259
+ doc
260
+ /*
261
+ * literaBooleanlEvaluations is a specialization of literalEvaluations and booleanEvaluations restricted
262
+ * to type LiteralBooleanEvaluation.
263
+ */
264
+ }
265
+
266
+ abstract expr literalIntegerEvaluations: LiteralIntegerEvaluation[0..*] nonunique subsets literalEvaluations {
267
+ doc
268
+ /*
269
+ * literalEvaluations is a specialization of evaluations restricted to type LiteralEvaluation.
270
+ */
271
+ }
272
+
273
+ abstract expr literalRationalEvaluations: LiteralRationalEvaluation[0..*] nonunique subsets literalEvaluations {
274
+ doc
275
+ /*
276
+ * literalRationalEvaluations is a specialization of literalEvaluations restricted to type LiteralRationalEvaluation.
277
+ */
278
+ }
279
+
280
+ abstract expr literalStringEvaluations: LiteralStringEvaluation[0..*] nonunique subsets literalEvaluations {
281
+ doc
282
+ /*
283
+ * literalStringEvaluations is a specialization of literalEvaluations restricted to type LiteralStringEvaluation.
284
+ */
285
+ }
286
+
287
+ abstract expr nullEvaluations: NullEvaluation[0..*] nonunique subsets evaluations {
288
+ doc
289
+ /*
290
+ * nullEvaluations is a specialization of evaluations restricted to type NullEvaluation.
291
+ */
292
+ }
293
293
  }