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.
OCL/Compliance
Major Facilities
Topic | OMG OCL 2.3.1 | Ecore binding | UML binding | Pivot binding |
---|---|---|---|---|
OCL Standard Library | textual | hard coded | hard coded | modeled as a prototype for OCL 2.5 in OCL-2.4.oclstdlib, code generated to OCLstdlib.java, extensible/replaceable |
XMI interchange | under-specified | Proprietary Ecore-based | Proprietary UML and Ecore-based | Prototype for OCL 2.5 |
Editors | n/a | none | none | Essential OCL, Complete OCL, OCLinEcore, OCLstdlib |
Evaluation | n/a | on Ecore models | on Ecore models | on Ecore models |
Impact Analyzer | n/a | supported | none | none |
Library
Topic | OMG OCL 2.3 | Ecore binding | UML binding | Pivot binding |
---|---|---|---|---|
'container' | no operation | eContainer() if EObject | as Ecore | oclContainer() |
'contents' | no operation | eContents() if EObject | as Ecore | oclContents() |
oclIsNew() | ? supported | dummy operation | ||
oclType() | unclear | identity at most | as Ecore | fully reflective |
String::toLowerCase | String::toLowerCase | String::toLower or String::toLower | as Ecore | String::toLowerCase or String::toLower |
String::toUpperCase | String::toUpperCase | String::toUpper or String::toUpper | as Ecore | String::toUpperCase or String::toUpper |
Collection::selectByKind | n/a | Collection::selectByKind | as Ecore | Collection::selectByKind |
Collection::selectByType | n/a | Collection::selectByType | as Ecore | Collection::selectByType |
Detailed Functionality
Topic | OMG OCL 2.3 | Ecore binding | UML binding | Pivot binding |
---|---|---|---|---|
Integer | unlimited range | Integer on Indigo, Integer or Long on Juno | as Ecore | BigInteger on Indigo, Integer or Long or BigInteger on Juno |
Real | unlimited range | Double | as Ecore | BigDecimal |
Nested Collections | as Ecore | fully supported | ||
null | as Ecore | fully supported | ||
invalid | as Ecore | fully supported | ||
unlimited | as Ecore | fully supported | ||
@pre | not EssentialOCL | n/a | parsed and ? evaluated | parsed only |
pre-conditions | not EssentialOCL | parsed only | parsed only | parsed only |
post-conditions | not EssentialOCL | parsed only | parsed only | parsed only |
Associations | not EssentialOCL | n/a | supported | work in progress |
Non-navigable opposites | optional | configurable | supported | supported |
OclMessage | not EssentialOCL | n/a | supported | parsed |
OclState | not EssentialOCL | n/a | supported | parsed |