Hi Ed,
I will add this to my list of things to keep an eye on.
Hi
CompositionProperty is used to navigate a composition/eContainer, so if it's being invoked that is because such a navigation is going on.
Possibly this is a sequencing problem that can be solved by ensuring containment assignments occur early/first.
Otherwise maybe we have to maintain a separate set of future containers that an alternate CompositionProperty class could exploit.
Regards
Ed
On 05/08/2013 15:41, Horacio Hoyos Rodriguez wrote:
Hi Ed,
As EObjects are created by realized variable visit methods these objects will all have no eContainer. Later when an owner ship (or similar) association is set, the EObejct gets an eContainer. However, the top level elements (e.g. the PacakgeToSchema and Schema EObjects) will remain without a container. There is also the case where this type of _expression_ may be visited before the owner attribute is set, which should not generate an exception (in my opinion).
Regards,
Hi
It is generally a bad idea to have EObjects without an eContainer, since eContainer provides the navigation route to Resources and ResourceSets where many useful services are provided.
If you have an object without a container that needs investigating.
Regards
Ed
On 05/08/2013 15:17, Horacio Hoyos Rodriguez wrote:
Hi Ed,
After adding a catch _expression_ for Invalid values while evaluation initializer expressions I realized that both the middle model and the output model where not being generated properly.
I noticed some errors in the RDBMS metamodel and after fixing and doing some more tests I was able to fix another couple of bugs in the evaluation visitor which caused strange bindings in the middle model.
After fixing this I am now getting another exception, which I think is an OCL issue.
In the UML2RDBMS QVTi transformation, line 356 we have:
fc.type := rk.column->first().type;
which was giving: InvalidValueException: 'Sequence' rather than 'OclVoid' value required
After debugging the evaluation if the OCL _expression_ I found that when visiting the rk.column _expression_, there is a method to get the value of the property (column of rk).
This method invokes evaluate method in CompoistionProperty.java, in line 45 the eContainer of the variable is fetched, and in this case the container is null (the key has not yet been assigned an owner?). Then the method returns null (line 46: if (eContainer == null) { return null } )
and then back in visitOperationCallExp the sourceValue variable will be set to null, and hence I get a the exception.
Why is the need for the container not to be null and why if it is null the value of the variable is returned as null?
Regards,
Horacio Hoyos Rodríguez
EngD Student
University of York
http://www.york.ac.uk/docs/disclaimer/email.htm
_______________________________________________
qvtd-dev mailing list
qvtd-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/qvtd-dev
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2013.0.3392 / Virus Database: 3209/6551 - Release Date: 08/04/13
_______________________________________________
qvtd-dev mailing list
qvtd-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/qvtd-dev
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2013.0.3392 / Virus Database: 3209/6551 - Release Date: 08/04/13