[ocl2qvti] - Fixing the unnecessary mapping creation for inner
ShadowExps
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl
index 067c9ea..3c81efa 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl
@@ -58,10 +58,13 @@
to t : QVTi!Mapping {
guard {
+ var containers = s.closure(x|x.eContainer());
+ return not containers.exists(x | x.isKindOf(OCL!ShadowExp)) -- innerShadowExps dont produce creation mappings
+ and
// FIXME this is hazardy. Rework
// Ideally lazy transformation on the content of the OCL Model should avoid calling
// this rule on undesired elemenets (imported from other ocl files)
- return s.closure(x|x.eContainer()).contains(LEFTCS_PACKAGE);
+ containers.contains(LEFTCS_PACKAGE);
}
t.name = s.getCreationMappingName();