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 |