Legacy Issue Number: 15368
Source: Dell Technologies ( George Ericson)
The text in the clause titled “Qualifying association ends with association names” points out that it is possible to qualify an accessed role name with the name of the association using the ‘::’ separator. (In the example: aC1.A1::c2.) There is no issue with this as a means to access the associated instance. However, in doing so, the clause misses the opportunity to also say that it is also possible to reference the same associated instance using the ‘.’ (dot) operator in place of the ‘..’ separator, (for example: aC1.A1.c2).
While this was also true prior to OCL 2.2, only the later technique was referenced in OCL 2.0.
Clarification is needed with respect to whether or not there are any semantic differences between the uses of these two techniques. Where the functionality overlaps, is there a preferred technique?
Nit: the last sentence of the example:
“If a C1 is aC1 access, aC1.c2 will not be valid since it is ambiguous, whereas aC1.A1::c2 or aC1.A2::c2 will be valid.”
Should probably say:
“If aC1 isa C1, then aC1.c2 will not be valid since it is ambiguous, whereas aC1.A1::c2 or aC1.A2::c2 will be valid.”
Reported: OCL 2.1 — Fri, 9 Jul 2010 04:00 GMT
Updated: Thu, 8 Oct 2015 14:12 GMT