Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[qvtd-dev] Distinct QVTi editor

Hi Horacio

The distinct QVTi editor is now available on GIT master. Attached is a patch that eliminates the compilation errors in your plugins; no guarantee that the fixes are actually correct.

A number of name changes are inevitable; e.g ImperativeModel rather than CoreModel. QVTimperativeVisitor rather than QVTcoreVisitor.

Many names have been promoted to QVTcoreBase that is common to QVTcore and QVTimperative.

I've eliminated the MappingCall from QVTc and the composed/refined mappings from QVTi. Anything else fundamental that should change?

    Regards

        Ed


diff --git a/plugins/uk.ac.york.qvtd.pivot.qvtcore/META-INF/MANIFEST.MF b/plugins/uk.ac.york.qvtd.pivot.qvtcore/META-INF/MANIFEST.MF
index f8eb73f..6596a19 100644
--- a/plugins/uk.ac.york.qvtd.pivot.qvtcore/META-INF/MANIFEST.MF
+++ b/plugins/uk.ac.york.qvtd.pivot.qvtcore/META-INF/MANIFEST.MF
@@ -6,10 +6,7 @@
 Bundle-Activator: uk.ac.york.qvtd.pivot.qvtcore.Activator
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
- org.eclipse.ocl.examples.domain;bundle-version="3.3.0",
- org.eclipse.ocl.examples.pivot;bundle-version="3.3.0",
- org.eclipse.qvtd.pivot.qvtbase;bundle-version="0.10.0",
- org.eclipse.qvtd.pivot.qvtcore;bundle-version="0.10.0",
+ org.eclipse.qvtd.pivot.qvtimperative,
  uk.ac.york.qvtd.pivot.qvtbase;bundle-version="1.0.0",
  uk.ac.york.qvtd.library;bundle-version="1.0.0"
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreEvaluationVisitorImpl.java b/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreEvaluationVisitorImpl.java
index 78a11f7..0786534 100644
--- a/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreEvaluationVisitorImpl.java
+++ b/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreEvaluationVisitorImpl.java
@@ -26,22 +26,21 @@
 import org.eclipse.qvtd.pivot.qvtbase.Transformation;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
 import org.eclipse.qvtd.pivot.qvtbase.evaluation.QVTbaseEvaluationVisitorImpl;
-import org.eclipse.qvtd.pivot.qvtcore.Area;
-import org.eclipse.qvtd.pivot.qvtcore.Assignment;
-import org.eclipse.qvtd.pivot.qvtcore.BottomPattern;
-import org.eclipse.qvtd.pivot.qvtcore.CoreDomain;
-import org.eclipse.qvtd.pivot.qvtcore.CoreModel;
-import org.eclipse.qvtd.pivot.qvtcore.CorePattern;
-import org.eclipse.qvtd.pivot.qvtcore.EnforcementOperation;
-import org.eclipse.qvtd.pivot.qvtcore.GuardPattern;
-import org.eclipse.qvtd.pivot.qvtcore.Mapping;
-import org.eclipse.qvtd.pivot.qvtcore.MappingCall;
-import org.eclipse.qvtd.pivot.qvtcore.MappingCallBinding;
-import org.eclipse.qvtd.pivot.qvtcore.NestedMapping;
-import org.eclipse.qvtd.pivot.qvtcore.PropertyAssignment;
-import org.eclipse.qvtd.pivot.qvtcore.RealizedVariable;
-import org.eclipse.qvtd.pivot.qvtcore.VariableAssignment;
-import org.eclipse.qvtd.pivot.qvtcore.util.QVTcoreVisitor;
+import org.eclipse.qvtd.pivot.qvtcorebase.Area;
+import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
+import org.eclipse.qvtd.pivot.qvtcorebase.CorePattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.EnforcementOperation;
+import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
+import org.eclipse.qvtd.pivot.qvtcorebase.VariableAssignment;
+import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
+import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
+import org.eclipse.qvtd.pivot.qvtimperative.MappingCall;
+import org.eclipse.qvtd.pivot.qvtimperative.MappingCallBinding;
+import org.eclipse.qvtd.pivot.qvtimperative.util.QVTimperativeVisitor;
 
 import uk.ac.york.qvtd.library.executor.QVTcDomainManager;
 
@@ -50,7 +49,7 @@
  * QVTcoreEvaluationVisitorImpl is the class for ...
  */
 public class QVTcoreEvaluationVisitorImpl extends QVTbaseEvaluationVisitorImpl
-        implements QVTcoreVisitor<Object> {
+        implements QVTimperativeVisitor<Object> {
     
     /**
      * Instantiates a new qV tcore evaluation visitor impl.
@@ -155,7 +154,7 @@
      * .eclipse.qvtd.pivot.qvtcore.CoreModel)
      */
     @Nullable
-    public Object visitCoreModel(@NonNull CoreModel coreModel) {
+    public Object visitImperativeModel(@NonNull ImperativeModel coreModel) {
         // CoreModel has a transformation (nestedPackage)
         // DEFINE Can a single QVT model has multiple transformations?
         Transformation transformation = ((Transformation) coreModel.getNestedPackage().get(0));
@@ -163,7 +162,8 @@
             // The transformation only has one mapping, the root mapping. Call
             // nested mappings in correct order, i.e. call all LtoM first then
             // all MtoR
-            for (NestedMapping m : ((Mapping) rule).getLocal()) {
+            Mapping m = (Mapping) rule;
+            {
                 QVTcoreLMEvaluationVisitor LMVisitor = new QVTcoreLMEvaluationVisitor(
                         getEnvironment(), getEvaluationEnvironment(), modelManager);
                 if (isLtoMMapping(m)) {
@@ -172,7 +172,7 @@
             }
             // Remove all bindings to evaluate MtoR
             getEvaluationEnvironment().clear();
-            for (NestedMapping m : ((Mapping) rule).getLocal()) {
+            {
                 QVTcoreMREvaluationVisitor MRVisitor = new QVTcoreMREvaluationVisitor(
                         getEnvironment(), getEvaluationEnvironment(), modelManager);
                 if (isMtoRMapping(m)) {
@@ -274,14 +274,7 @@
      * @param mapping the mapping
      * @return true, if is mto r mapping
      */
-    private boolean isMtoRMapping(NestedMapping nestedMapping) {
-        Mapping mapping;
-        if (nestedMapping instanceof MappingCall) {
-            mapping = ((MappingCall)nestedMapping).getReferredMapping();
-        }
-        else {
-            mapping = (Mapping)nestedMapping;
-        }
+    private boolean isMtoRMapping(Mapping mapping) {
         if (mapping.getDomain().size() == 0) {
             return false;
         }
@@ -300,14 +293,7 @@
      * @param mapping the mapping
      * @return true, if is lto m mapping
      */
-    private boolean isLtoMMapping(NestedMapping nestedMapping) {
-        Mapping mapping;
-        if (nestedMapping instanceof MappingCall) {
-            mapping = ((MappingCall)nestedMapping).getReferredMapping();
-        }
-        else {
-            mapping = (Mapping)nestedMapping;
-        }
+    private boolean isLtoMMapping(Mapping mapping) {
         if (mapping.getDomain().size() == 0) {
             return false;
         }
diff --git a/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreLMEvaluationVisitor.java b/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreLMEvaluationVisitor.java
index 6fb568b..34aab3b 100644
--- a/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreLMEvaluationVisitor.java
+++ b/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreLMEvaluationVisitor.java
@@ -24,20 +24,19 @@
 import org.eclipse.qvtd.pivot.qvtbase.Domain;
 import org.eclipse.qvtd.pivot.qvtbase.Predicate;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
-import org.eclipse.qvtd.pivot.qvtcore.Area;
-import org.eclipse.qvtd.pivot.qvtcore.Assignment;
-import org.eclipse.qvtd.pivot.qvtcore.BottomPattern;
-import org.eclipse.qvtd.pivot.qvtcore.CoreDomain;
-import org.eclipse.qvtd.pivot.qvtcore.EnforcementOperation;
-import org.eclipse.qvtd.pivot.qvtcore.Mapping;
-import org.eclipse.qvtd.pivot.qvtcore.NestedMapping;
-import org.eclipse.qvtd.pivot.qvtcore.RealizedVariable;
-import org.eclipse.qvtd.pivot.qvtcore.util.QVTcoreVisitor;
+import org.eclipse.qvtd.pivot.qvtcorebase.Area;
+import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
+import org.eclipse.qvtd.pivot.qvtcorebase.EnforcementOperation;
+import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
+import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
+import org.eclipse.qvtd.pivot.qvtimperative.util.QVTimperativeVisitor;
 
 import uk.ac.york.qvtd.library.executor.QVTcDomainManager;
 
 public class QVTcoreLMEvaluationVisitor extends QVTcoreEvaluationVisitorImpl 
-        implements QVTcoreVisitor<Object> {
+        implements QVTimperativeVisitor<Object> {
 
     public QVTcoreLMEvaluationVisitor(@NonNull Environment env,
             @NonNull EvaluationEnvironment evalEnv,
@@ -65,10 +64,6 @@
                         //    MiddleBottomPattern (aka where clause)
                             mapping.getBottomPattern().accept(this);
                         //}
-                        // Nested mappings
-                        for (NestedMapping localMapping : mapping.getLocal()) {
-                            localMapping.accept(this);
-                        }
                     }
                 }
             }
diff --git a/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreMREvaluationVisitor.java b/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreMREvaluationVisitor.java
index 78a7be5..a085b7f 100644
--- a/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreMREvaluationVisitor.java
+++ b/plugins/uk.ac.york.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/evaluation/QVTcoreMREvaluationVisitor.java
@@ -23,20 +23,19 @@
 import org.eclipse.ocl.examples.pivot.evaluation.EvaluationEnvironment;
 import org.eclipse.qvtd.pivot.qvtbase.Domain;
 import org.eclipse.qvtd.pivot.qvtbase.Predicate;
-import org.eclipse.qvtd.pivot.qvtcore.Area;
-import org.eclipse.qvtd.pivot.qvtcore.Assignment;
-import org.eclipse.qvtd.pivot.qvtcore.BottomPattern;
-import org.eclipse.qvtd.pivot.qvtcore.CoreDomain;
-import org.eclipse.qvtd.pivot.qvtcore.EnforcementOperation;
-import org.eclipse.qvtd.pivot.qvtcore.Mapping;
-import org.eclipse.qvtd.pivot.qvtcore.NestedMapping;
-import org.eclipse.qvtd.pivot.qvtcore.RealizedVariable;
-import org.eclipse.qvtd.pivot.qvtcore.util.QVTcoreVisitor;
+import org.eclipse.qvtd.pivot.qvtcorebase.Area;
+import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
+import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
+import org.eclipse.qvtd.pivot.qvtcorebase.EnforcementOperation;
+import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
+import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
+import org.eclipse.qvtd.pivot.qvtimperative.util.QVTimperativeVisitor;
 
 import uk.ac.york.qvtd.library.executor.QVTcDomainManager;
 
 public class QVTcoreMREvaluationVisitor extends QVTcoreEvaluationVisitorImpl
-        implements QVTcoreVisitor<Object> {
+        implements QVTimperativeVisitor<Object> {
 
     public QVTcoreMREvaluationVisitor(@NonNull Environment env,
             @NonNull EvaluationEnvironment evalEnv,
@@ -63,9 +62,6 @@
                     getEvaluationEnvironment().replace(var, e);
                     for (Domain domain : mapping.getDomain()) {
                         ((CoreDomain) domain).accept(this);
-                    }
-                    for (NestedMapping localMapping : mapping.getLocal()) {
-                        localMapping.accept(this);
                     }
                 }
             }
diff --git a/tests/uk.ac.york.qvtd.tests.hhr/META-INF/MANIFEST.MF b/tests/uk.ac.york.qvtd.tests.hhr/META-INF/MANIFEST.MF
index 1817e90..ff3896c 100644
--- a/tests/uk.ac.york.qvtd.tests.hhr/META-INF/MANIFEST.MF
+++ b/tests/uk.ac.york.qvtd.tests.hhr/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@
 Bundle-Version: 1.0.0.qualifier
 Export-Package: qvti
 Require-Bundle: org.eclipse.qvtd.xtext.qvtbase.tests;bundle-version="0.10.0",
- org.eclipse.qvtd.xtext.qvtcore;bundle-version="0.10.0",
+ org.eclipse.qvtd.xtext.qvtimperative;bundle-version="0.10.0",
  uk.ac.york.qvtd.pivot.qvtcore;bundle-version="1.0.0",
  uk.ac.york.qvtd.pivot.qvtbase;bundle-version="1.0.0",
  uk.ac.york.qvtd.library;bundle-version="1.0.0",
diff --git a/tests/uk.ac.york.qvtd.tests.hhr/src/qvti/TestQVTi.java b/tests/uk.ac.york.qvtd.tests.hhr/src/qvti/TestQVTi.java
index d23e048..5b07a62 100644
--- a/tests/uk.ac.york.qvtd.tests.hhr/src/qvti/TestQVTi.java
+++ b/tests/uk.ac.york.qvtd.tests.hhr/src/qvti/TestQVTi.java
@@ -27,11 +27,11 @@
 import org.eclipse.ocl.examples.xtext.essentialocl.services.EssentialOCLLinkingService;
 import org.eclipse.qvtd.pivot.qvtbase.Transformation;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
-import org.eclipse.qvtd.pivot.qvtcore.CoreModel;
 import org.eclipse.qvtd.pivot.qvtcore.evaluation.QVTcoreEvaluationVisitorImpl;
-import org.eclipse.qvtd.pivot.qvtcore.util.QVTcoreVisitor;
+import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
+import org.eclipse.qvtd.pivot.qvtimperative.util.QVTimperativeVisitor;
 import org.eclipse.qvtd.xtext.qvtbase.tests.LoadTestCase;
-import org.eclipse.qvtd.xtext.qvtcore.QVTcoreStandaloneSetup;
+import org.eclipse.qvtd.xtext.qvtimperative.QVTimperativeStandaloneSetup;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -55,7 +55,7 @@
 	    
 		EssentialOCLLinkingService.DEBUG_RETRY = true;
 		super.setUp();
-		QVTcoreStandaloneSetup.doSetup();
+		QVTimperativeStandaloneSetup.doSetup();
 		
         getProjectMap().initializeResourceSet(resourceSet);
         metaModelManager = new MetaModelManager();
@@ -152,7 +152,7 @@
             fail("There was an error loading the QVTc file");
         }
         if (qvtResource != null) {
-            CoreModel coreModel = (CoreModel) qvtResource.getContents().get(0);
+            ImperativeModel coreModel = (ImperativeModel) qvtResource.getContents().get(0);
             PivotEnvironmentFactory envFactory = new PivotEnvironmentFactory(null, metaModelManager);
             PivotEnvironment env = envFactory.createEnvironment();
             PivotEvaluationEnvironment evalEnv = new PivotEvaluationEnvironment(metaModelManager);
@@ -167,7 +167,7 @@
                 typedModel = DomainUtil.getNamedElement(transformation.getModelParameter(), pairs.getKey());
                 modelManager.addModel(typedModel, pairs.getValue());
             }
-            QVTcoreVisitor<Object> visitor = new QVTcoreEvaluationVisitorImpl(env, evalEnv, modelManager);
+            QVTimperativeVisitor<Object> visitor = new QVTcoreEvaluationVisitorImpl(env, evalEnv, modelManager);
             Object sucess = coreModel.accept(visitor);
             assertNotNull("QVTcoreEVNodeTypeImpl should not return null.", sucess);
             modelManager.saveModels();
diff --git a/tests/uk.ac.york.qvtd.tests.hhr/src/test002/Graph002Lower.xmi b/tests/uk.ac.york.qvtd.tests.hhr/src/test002/Graph002Lower.xmi
new file mode 100644
index 0000000..eb16774
--- /dev/null
+++ b/tests/uk.ac.york.qvtd.tests.hhr/src/test002/Graph002Lower.xmi
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ASCII"?>
+<simplegraph:Graph xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"; xmlns:simplegraph="http://cs.york.ac.uk/SimpleGraph/1.0"; name="G1"/>

Back to the top