@@ -34,19 +34,18 @@ namespace SysML2.NET.Core.POCO
34
34
/// A Connector is a usage of Associations, with links restricted according to instances of the Type in
35
35
/// which they are used (domain of the Connector). The associations of the Connector restrict what kinds
36
36
/// of things might be linked. The Connector further restricts these links to be between values of
37
- /// Features on instances of its domain.relatedFeature = connectorEnd.ownedReferenceSubsetting->
38
- /// select(s | s <> null).subsettedFeaturerelatedFeature->forAll(f | if featuringType->isEmpty()
39
- /// then f.isFeaturedWithin(null) else featuringType->forAll(t | f.isFeaturedWithin(t))
40
- /// endif)sourceFeature = if relatedFeature->isEmpty() then null else relatedFeature->first()
41
- /// endiftargetFeature = if relatedFeature->size() < 2 then OrderedSet{} else
42
- /// relatedFeature-> subSequence(2, relatedFeature->size())-> asOrderedSet()
43
- /// endifnot isAbstract implies relatedFeature->size() >=
44
- /// 2specializesFromLibrary('Links::links')association->exists(oclIsKindOf(AssociationStructure))
45
- /// implies specializesFromLibrary('Objects::linkObjects')connectorEnds->size() = 2
46
- /// andassociation->exists(oclIsKindOf(AssocationStructure)) implies
47
- /// specializesFromLibrary('Objects::binaryLinkObjects')connectorEnd->size() = 2 implies
48
- /// specializesFromLibrary('Links::binaryLinks')connectorEnds->size() > 2 implies not
49
- /// specializesFromLibrary('Links::BinaryLink')
37
+ /// Features on instances of its domain.not isAbstract implies relatedFeature->size() >=
38
+ /// 2connectorEnds->size() = 2 andassociation->exists(oclIsKindOf(AssociationStructure)) implies
39
+ /// specializesFromLibrary('Objects::binaryLinkObjects')sourceFeature = if relatedFeature->isEmpty()
40
+ /// then null else relatedFeature->first() endifconnectorEnds->size() > 2 implies not
41
+ /// specializesFromLibrary('Links::BinaryLink')relatedFeature->forAll(f | if
42
+ /// featuringType->isEmpty() then f.isFeaturedWithin(null) else featuringType->forAll(t |
43
+ /// f.isFeaturedWithin(t)) endif)relatedFeature = connectorEnd.ownedReferenceSubsetting-> select(s
44
+ /// | s <> null).subsettedFeaturespecializesFromLibrary('Links::links')connectorEnd->size() = 2 implies
45
+ /// specializesFromLibrary('Links::binaryLinks')association->exists(oclIsKindOf(AssociationStructure))
46
+ /// implies specializesFromLibrary('Objects::linkObjects')targetFeature = if
47
+ /// relatedFeature->size() < 2 then OrderedSet{} else relatedFeature->
48
+ /// subSequence(2, relatedFeature->size())-> asOrderedSet() endif
50
49
/// </summary>
51
50
public partial class Connector : IConnector
52
51
{
@@ -112,6 +111,15 @@ public List<Feature> QueryConnectorEnd()
112
111
throw new NotImplementedException ( "Derived property ConnectorEnd not yet supported" ) ;
113
112
}
114
113
114
+ /// <summary>
115
+ /// Queries the derived property CrossFeature
116
+ /// </summary>
117
+ [ EFeature ( isChangeable : true , isVolatile : true , isTransient : true , isUnsettable : false , isDerived : true , isOrdered : false , isUnique : true , lowerBound : 0 , upperBound : 1 , isMany : false , isRequired : false , isContainment : false ) ]
118
+ public Feature QueryCrossFeature ( )
119
+ {
120
+ throw new NotImplementedException ( "Derived property CrossFeature not yet supported" ) ;
121
+ }
122
+
115
123
/// <summary>
116
124
/// The declared name of this Element.
117
125
/// </summary>
@@ -297,14 +305,14 @@ public bool QueryIsConjugated()
297
305
public bool IsDerived { get ; set ; }
298
306
299
307
/// <summary>
300
- /// Whether or not the this Feature is an end Feature, requiring a different interpretation of the
301
- /// multiplicity of the Feature.An end Feature is always considered to map each domain instance to a
302
- /// single co-domain instance, whether or not a Multiplicity is given for it. If a Multiplicity is given
303
- /// for an end Feature, rather than giving the co-domain cardinality for the Feature as usual, it
304
- /// specifies a cardinality constraint for navigating across the endFeatures of the featuringType of the
305
- /// end Feature. That is, if a Type has n endFeatures, then the Multiplicity of any one of those end
306
- /// Features constrains the cardinality of the set of values of that Feature when the values of the
307
- /// other n-1 end Features are held fixed.
308
+ /// Whether or not this Feature is an end Feature. An end Feature always has multiplicity 1, mapping
309
+ /// each of its domain instances to a single co- domain instance. However, it may have a crossFeature, in
310
+ /// which case values of the crossFeature must be the same as those found by navigation across instances
311
+ /// of the owningType from values of other end Features to values of this Feature. If the owningType has
312
+ /// n end Features, then the multiplicity, ordering, and uniqueness declared for the crossFeature of any
313
+ /// one of these end Features constrains the cardinality, ordering, and uniqueness of the collection of
314
+ /// values of that Feature reached by navigation when the values of the other n-1 end Features are held
315
+ /// fixed.
308
316
/// </summary>
309
317
[ EFeature ( isChangeable : true , isVolatile : false , isTransient : false , isUnsettable : false , isDerived : false , isOrdered : false , isUnique : true , lowerBound : 1 , upperBound : 1 , isMany : false , isRequired : false , isContainment : false ) ]
310
318
public bool IsEnd { get ; set ; }
@@ -443,6 +451,15 @@ public Conjugation QueryOwnedConjugator()
443
451
throw new NotImplementedException ( "Derived property OwnedConjugator not yet supported" ) ;
444
452
}
445
453
454
+ /// <summary>
455
+ /// Queries the derived property OwnedCrossSubsetting
456
+ /// </summary>
457
+ [ EFeature ( isChangeable : true , isVolatile : true , isTransient : true , isUnsettable : false , isDerived : true , isOrdered : false , isUnique : true , lowerBound : 0 , upperBound : 1 , isMany : false , isRequired : false , isContainment : false ) ]
458
+ public CrossSubsetting QueryOwnedCrossSubsetting ( )
459
+ {
460
+ throw new NotImplementedException ( "Derived property OwnedCrossSubsetting not yet supported" ) ;
461
+ }
462
+
446
463
/// <summary>
447
464
/// Queries the derived property OwnedDifferencing
448
465
/// </summary>
0 commit comments