Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

MDT/OCL 3.0.0 API Changes

The OCL 2.2 language changes under discussion for MDT-OCL 2.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 Adopting Milestone
Introduce static keyword and operations 7.4.4, 7.4.9, 12.12.6 --
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 No change
Give and/or/xor distinct precedence 7.4.7, 9.3.2 --
Remove attr, oper keywords 7.4.9 --
Add body, init, derive keywords 7.4.9 No change
Add qualified navigation paths 7.5.3, 9.3 --
Introduce FeatureCallexp.isPre (rename markedPre) 8.3.1, 9.3 --
exists iterator may have multiple iterators 7.6.4 --
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 --
Introduce TemplateParameterType 8.2 --
Make CollectionType concrete 8.2 No change
Add CollectionKind::Collection 8.3.5 No change
Renames for *CallExpCS 9.3 No change
OclAny is the type to which all other types conform (including Collections) 8.2 189657, 191819 --
OclInvalid and invalid confusion (OclInvalid must be a type, invalid must be a literal) 11.2.4 281849 --
OclVoid doesn't conform to OclInvalid 11.2.3 --
OclInvalid doesn't conform to OclVoid 11.2.4 --
EMOF Reflection is not merged 13.2 --


The OCL.uml meta-model changes under discussion for MDT-OCL 2.0.0.

Summary of change Related bug/s Adopting Milestone
Add TemplateParameterType --
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) --


The parsing and environment API changes under discussion for MDT-OCL 2.0.0

Summary of change Related bug/s Adopting Milestone
Replace PropertyDeclCS InitOrDer CST daisy chain, by optional initCS or deriveCS values --
Eliminate redundant ClassifierContextDeclCS InitOrDer CST daisy chain, retaining just constraints array --
Eliminate CSTToken.startOffset/endOffset --
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 --


The standard library API changes under discussion for MDT-OCL 2.0.0

Summary of change Related bug/s Adopting Milestone
OrderedSet is not a subtype of Set. Set operations defined for OrderedSet (union, intersection, including, etc.) must be dropped 246962 --

Back to the top