MDT/OCL 3.0.0 API Changes

From Eclipsepedia

< MDT
Jump to: navigation, search

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