Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
MDT/OCL 3.0.0 API Changes
Contents
OCL 2.2/2.3 changes
The OCL 2.2 and 2.3 language changes under discussion for MDT-OCL 3.0.0.
Some changes are marked as no change since MDT-OCL 1.x anticipated them.
Summary of probable OCL 2.2 change | Related spec. sections | Related bug/s | Owner | Adopting Milestone |
---|---|---|---|---|
Introduce static keyword and operations | 7.4.4, 7.4.9, 12.12.6 | 285633 | EDW | M2 |
OrderedSet is not a subtype of Set. | 7.4.5, 11.6.3 | 246962 | -- | |
Give message-expression operators precedence | 7.4.7, 9.3.2 | 288040 | EDW | M3, Issue 14582 |
Give and/or/xor distinct precedence | 7.4.7, 9.3.2 | 288040 | EDW | M3 |
Remove attr, oper keywords | 7.4.9 | 184048, 292112 | EDW | M3 |
Add body, init, derive keywords | 7.4.9 | -- | No change | |
Add qualified navigation paths | 7.5.3, 9.3 | 288575 184048, 292112 | EDW | Parsed in M3 |
exists iterator may have multiple iterators | 7.6.4 | 288573 | -- | No change |
Special types (ElementType, TypeType) don't exist anymore. Consequently, their instances (OclElement, OclType) do not exist either | 8.2, 13.3, 11.3 | 190150, 259031, 294956 | -- | |
Introduce TemplateParameterType | 8.2 | 294956 | EDW | M4 |
Make CollectionType concrete | 8.2 | -- | No change | |
OclAny is the type to which all other types conform (including Collections) | 8.2 | 290680189657 191819 259031 | Issue 12948 Issue 12795 | |
Introduce FeatureCallexp.isPre (rename markedPre) | 8.3.1, 9.3 | -- | ||
Add CollectionKind::Collection | 8.3.5 | -- | No change | |
Renames for *CallExpCS | 9.3 | 184048, 292112 | EDW | M3 |
OclInvalid and invalid confusion (OclInvalid must be a type, invalid must be a literal) | 11.2.4 | 281849 282882 288526 | EDW | M2 |
OclVoid doesn't conform to OclInvalid | 11.2.3 | Issue 14197 | ||
OclInvalid doesn't conform to OclVoid | 11.2.4 | Issue 14197 | ||
EMOF Reflection is not merged | 13.2 | -- |
OCL.uml meta-model changes
The OCL.uml meta-model changes under discussion for MDT-OCL 3.0.0.
Summary of change | Related bug/s | Owner | Adopting Milestone |
---|---|---|---|
Add TemplateParameterType | 294956 | EDW | M4 |
Rename FeatureCallExp.withAtPre as isPre | -- | ||
Eliminate EMOF reflection | -- | ||
Introduce OCL_2_0.uml more closely matching OCL 2.0 (excluding TemplateParameterType) | -- | ||
Introduce OCL_2_2.uml more closely matching OCL 2.2 (excluding ElementType, TypeType) | -- | ||
Change IntegerLiteralExp.integerSymbol from Integer to Number to support BigInteger.
Change UnlimitedNaturalLiteralExp.integerSymbol from Integer to Number to support BigInteger. Change RealLiteralExp.realSymbol from Double to Number to support BigDecimal. |
290605 | EDW | -- |
Parsing and Environment API changes
The parsing and environment API changes under discussion for MDT-OCL 3.0.0
Summary of change | Related bug/s | Owner | Adopting Milestone |
---|---|---|---|
Migrate OCL grammars and parsing infrastructure to exploit LPG v2 | 242153 | ASBH | M5 |
Eliminate PrsStream, LexStream inheritance | 299396 | ASBH | M5 |
Replace IsMarkedAtPreCS.isPre true/false usage by not-null/null IsMarkedAtPreCS | 287993 | EDW | M2 |
Eliminate redundant ClassifierContextDeclCS.invOrDefCS daisy chain, retaining just constraints array | 287993 | EDW | M2 |
Replace PropertyContextCS.initOrDerCS daisy chain by constraints array | 287993 | EDW | M2 |
Change PathNameCS.sequenceOfNames to simpleNames retaining CST context | 287993 | EDW | M2 |
Change StateExpCS.sequenceOfNames to simpleNames retaining CST context | 287993 | EDW | M2 |
Eliminate CSTToken.startOffset/endOffset | 297606 | EDW | -- |
Use PathNameCS rather than List<String> in numerous internal calls | -- | ||
Use the tryLookupXXX methods rather than lookupXXX methods wherever possible | -- | ||
Introduce File/Root/Child environments from QVT Declarative | -- | ||
Use a Child rather than dynamic environment for LetExp and IteratorExp parsing | -- | ||
Change IntegerLiteralExpCS.integerSymbol from Integer to Number to support BigInteger. Change UnlimitedNaturalLiteralExpCS.integerSymbol from Integer to Number to support BigInteger. Change RealLiteralExpCS.realSymbol from Double to Number to support BigDecimal. |
290605 | EDW | -- |
Standard library API changes
The standard library API changes under discussion for MDT-OCL 3.0.0
Summary of change | Related bug/s | Owner | Adopting Milestone |
---|---|---|---|
OrderedSet is not a subtype of Set. Set operations defined for OrderedSet (union, intersection, including, etc.) must be dropped | 246962 | -- | |
Implement oclType() | 259031 283052 | EDW | -- |
Implement toString() | -- | ||
Submit closure() implementation to OMG | 297541 | EDW | M6, Issue 13944 |
Support OclAny reflection using perhaps oclContainer() | 283052 | EDW | -- |
Support EObject using perhaps oclAsType(ecore::EObject) | 297011 | -- |
Bug fix changes
The following MDT-OCL 3.0.0 bug fixes obviously change behaviour slightly.
Bug fix | Related bug/s | Owner | Adopting Milestone |
---|---|---|---|
Give if atomic precedence | 184048 | EDW | M3 |
Fix Integer Dot parsing | 288601 | EDW | M3 |
Environment changes
Bug fix | Cause | Related bug/s | Adopting Milestone |
---|---|---|---|
Remove EModelElement inheritance of EObject:
this prevents use of eContainer() and eContents() |
EMF 2.6.0M4 | 255469 | M4 |
Change UMLReflection.getContainerElement() return to List<? extends EObject>
this avoids a (valid) compilation warning |
JDT 3.6.0M4 | 298128 | M6 |
Enhancements
The following enhancements are planned for MDT-OCL 3.0.0.
Enhancement | Dependency | Related bug/s | Owner | Adopting Milestone |
---|---|---|---|---|
Add OCL edit support | 196973 | EDW | M3 | |
Add an OCL editor | 289759 289761 | EDW | M7 | |
OCL Validation Delegate | EMF 2.6 M2 | 191689 | KH | M6 |
OCL Derived Feature Setting Delegate | EMF 2.6 M4 | 291361 | KH | M6 |
OCL Operation Invocation Delegate | EMF 2.6 M4 | 291365 | KH | M6 |
Add OCL Capabilities | 273680 | ASBH | M5 |
Enhancements (unendorsed)
The following enhancements for MDT-OCL 3.0.0 have not yet been endorsed by the OCL committer team.
You are welcome to add your own contributions here provided you have raised the contribution via a Bugzilla.
Enhancement | Dependency | Related bug/s | Contributor |
---|---|---|---|
Migrate EMF Query and Transaction OCL support | 192506 |
Administrative Enhancements
The following enhancements affect mainly the development team.
Enhancement | Related bug/s | Owner | Adopting Milestone |
---|---|---|---|
Reorganise features and plugins | 289763 | ||
Share JUnit tests between Ecore and UML bindings | 254919 | EDW | M4 |