|
46 | 46 | * specializesFromLibrary('States::State::stateTransitions') |
47 | 47 | * specializesFromLibrary('Actions::transitionActions') |
48 | 48 | * source = |
49 | | - * if ownedMembership->isEmpty() then null |
50 | | - * else |
51 | | - * let member : Element = |
52 | | - * ownedMembership->at(1).memberElement in |
53 | | - * if not member.oclIsKindOf(ActionUsage) then null |
54 | | - * else member.oclAsKindOf(ActionUsage) |
55 | | - * endif |
56 | | - * endif |
| 49 | + * let sourceFeature : Feature = sourceFeature() in |
| 50 | + * if sourceFeature = null then null |
| 51 | + * else sourceFeature.featureTarget.oclAsType(ActionUsage) |
57 | 52 | * target = |
58 | 53 | * if succession.targetFeature->isEmpty() then null |
59 | 54 | * else |
60 | | - * let targetFeature : Feature = |
61 | | - * succession.targetFeature->at(1) in |
| 55 | + * let targetFeature : Feature = |
| 56 | + * succession.targetFeature->first().featureTarget in |
62 | 57 | * if not targetFeature.oclIsKindOf(ActionUsage) then null |
63 | 58 | * else targetFeature.oclAsType(ActionUsage) |
64 | 59 | * endif |
65 | 60 | * endif |
| 61 | + * |
66 | 62 | * triggerAction = ownedFeatureMembership-> |
67 | 63 | * selectByKind(TransitionFeatureMembership)-> |
68 | 64 | * select(kind = TransitionFeatureKind::trigger).transitionFeature-> |
@@ -296,4 +292,23 @@ public interface TransitionUsage extends ActionUsage { |
296 | 292 | * @generated |
297 | 293 | */ |
298 | 294 | ReferenceUsage triggerPayloadParameter(); |
| 295 | + |
| 296 | + /** |
| 297 | + * <!-- begin-user-doc --> |
| 298 | + * <!-- end-user-doc --> |
| 299 | + * <!-- begin-model-doc --> |
| 300 | + * <p>Return the <code>Feature</code> to be used as the <code>source</code> of the <code>succession</code> of this <code>TransitionUsage</code>, which is the first <code>ownedMember</code> of the <code>TransitionUsage</code> that is a <code>Feature</code> <em>not</em> owned via a <code>FeatureMembership</code> whose <code>featureTarget</code> is an <code>ActionUsage</code>.</p> |
| 301 | + * let features : Sequence(Feature) = ownedMembers-> |
| 302 | + * reject(owningMembership.oclIsKindOf(FeatureMembership))-> |
| 303 | + * selectByKind(Feature)-> |
| 304 | + * select(featureTarget.oclIsKindOf(ActionUsage)) in |
| 305 | + * if features->isEmpty() then null |
| 306 | + * else features->first() |
| 307 | + * endif |
| 308 | + * <!-- end-model-doc --> |
| 309 | + * @model ordered="false" |
| 310 | + * annotation="http://www.omg.org/spec/SysML" |
| 311 | + * @generated |
| 312 | + */ |
| 313 | + Feature sourceFeature(); |
299 | 314 | } // TransitionStep |
0 commit comments