ST6RI-899 getEnumeratedValue and getVariant broken on EnumerationDefinition #723
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes a bug which caused the methods
Definition::getVariantandEnumerationDefinition::getEnumeratedValueto always return the empty list for enumeration definitions, even if the enumeration definition did, in fact, have enumerated values.Cause
The underlying cause was similar to the cause of the bug fixed in PR #712. The method
getEnumeratedValuewas implemented using aDerivedEObjectEListsubsettingvariantfor elements that areEnumeationUsages'. However, the propertyenumeratedValueis a redefinition ofvariant, which prevented the dynamic get ofvariantin theDerivedEObjectEList` from working.Changes
EnumerationDefinition_enumeratedValue_SettingDelegate– Revised to extendDefinition_variant_SettingDelegateand explicitly filter the list produced forvariant, rather than usingDerivedEObjectEList.Definition_directedUsage_SettingDelegate– Updated to use an implementation approach similar to that used inEnumerationDefinition_enumeratedValue_SettingDelegate(this is a revision to the approach implemented in PR #712).Usage_directedUsage_SettingDelegate– Updated to also use an implementation approach similar to that used inEnumerationDefinition_enumeratedValue_SettingDelegate.