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.
Difference between revisions of "OCL/Compliance"
< OCL
(New page: == Major Facilities == {| border="1" cellspacing="0" cellpadding="5" align="center" ! Topic ! OMG OCL 2.3 ! Ecore binding ! UML binding ! Pivot binding |- | OCL Standard Library | textual...) |
|||
Line 36: | Line 36: | ||
| none | | none | ||
| none | | none | ||
+ | |} | ||
+ | |||
+ | == Library == | ||
+ | |||
+ | {| border="1" cellspacing="0" cellpadding="5" align="center" | ||
+ | ! 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 | ||
+ | | as Ecore | ||
+ | | String::toLowerCaseor String::toLower | ||
+ | |- | ||
+ | | String::toUpperCase | ||
+ | | String::toUpperCase | ||
+ | | String::toUpper | ||
+ | | as Ecore | ||
+ | | String::toUpperCase or String::toUpper | ||
|} | |} | ||
Line 87: | Line 133: | ||
| n/a | | n/a | ||
| parsed and ? evaluated | | 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 | | parsed only | ||
|- | |- | ||
Line 100: | Line 158: | ||
| supported | | supported | ||
| supported | | supported | ||
+ | |- | ||
+ | | OclMessage | ||
+ | | not EssentialOCL | ||
+ | | n/a | ||
+ | | supported | ||
+ | | parsed | ||
+ | |- | ||
+ | | OclState | ||
+ | | not EssentialOCL | ||
+ | | n/a | ||
+ | | supported | ||
+ | | parsed | ||
|} | |} |
Revision as of 11:31, 12 August 2011
Major Facilities
Topic | OMG OCL 2.3 | Ecore binding | UML binding | Pivot binding |
---|---|---|---|---|
OCL Standard Library | textual | hard coded | hard coded | modeled as a prototype for OCL 2.4 |
XMI interchange | under-specified | Proprietary Ecore-based | Proprietary UML and Ecore-based | Prototype for OCL 2.4 |
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 | as Ecore | String::toLowerCaseor String::toLower |
String::toUpperCase | String::toUpperCase | String::toUpper | as Ecore | String::toUpperCase or String::toUpper |
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 |