wip - cached lookup operations
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/CS2ASJavaCompilerImpl.java b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/CS2ASJavaCompilerImpl.java
index fdf3ac1..9c6831d 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/CS2ASJavaCompilerImpl.java
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/CS2ASJavaCompilerImpl.java
@@ -37,9 +37,6 @@
import org.eclipse.ocl.examples.codegen.java.JavaConstants;
import org.eclipse.ocl.examples.codegen.java.types.UnboxedDescriptor;
import org.eclipse.ocl.examples.codegen.utilities.CGModelResourceFactory;
-import org.eclipse.ocl.pivot.OCLExpression;
-import org.eclipse.ocl.pivot.Operation;
-import org.eclipse.ocl.pivot.OperationCallExp;
import org.eclipse.ocl.pivot.Parameter;
import org.eclipse.ocl.pivot.ids.ElementId;
import org.eclipse.ocl.pivot.ids.TypeId;
@@ -62,7 +59,6 @@
import org.eclipse.qvtd.cs2as.compiler.CS2ASJavaCompiler;
import org.eclipse.qvtd.cs2as.compiler.CS2ASJavaCompilerParameters;
import org.eclipse.qvtd.cs2as.compiler.cgmodel.CGLookupCallExp;
-import org.eclipse.qvtd.cs2as.compiler.cgmodel.CS2ASCGFactory;
import org.eclipse.qvtd.cs2as.compiler.cgmodel.util.CS2ASCGModelVisitor;
import org.eclipse.qvtd.cs2as.compiler.internal.utilities.CS2ASCGModelResourceFactory;
import org.eclipse.qvtd.pivot.qvtbase.Transformation;
@@ -315,34 +311,6 @@
public CS2ASAS2CGVisitor(@NonNull QVTiAnalyzer analyzer, @NonNull QVTiGlobalContext globalContext) {
super(analyzer, globalContext);
}
-
- @Override
- protected @NonNull CGValuedElement generateOperationCallExp(@Nullable CGValuedElement cgSource, @NonNull OperationCallExp asOperationCallExp) {
-
- Operation asOperation = asOperationCallExp.getReferredOperation();
- if (isLookupOp(asOperation)) {
- CGLookupCallExp cgLookupCallExp = CS2ASCGFactory.eINSTANCE.createCGLookupCallExp();
- setAst(cgLookupCallExp, asOperationCallExp);
- cgLookupCallExp.setName(asOperation.getName());
- cgLookupCallExp.setSource(cgSource);
- for (OCLExpression arg : asOperationCallExp.getOwnedArguments()) {
- CGValuedElement cgArg = doVisit(CGValuedElement.class, arg);
- cgLookupCallExp.getArguments().add(cgArg);
- }
- cgLookupCallExp.setReferredOperation(asOperation);
- return cgLookupCallExp;
- }
- return super.generateOperationCallExp(cgSource, asOperationCallExp);
- }
-
- protected boolean isLookupOp(Operation op) {
-
-// String opName = op.getName();
-// if (opName != null && opName.startsWith("_lookup")) {// FIXME
-// return false;
-// }
- return false;
- }
}
protected static class CS2ASAnalysisVisitor extends QVTiAnalysisVisitor
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
index 3a490f5..4e9556e 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
@@ -52,6 +52,7 @@
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiIncrementalExecutor;
import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiTransformationExecutor;
import org.eclipse.qvtd.pivot.qvtimperative.utilities.QVTimperative;
+import org.eclipse.qvtd.runtime.evaluation.AbstractTransformer;
import org.eclipse.qvtd.runtime.evaluation.TransformationExecutor;
import org.eclipse.qvtd.runtime.evaluation.Transformer;
import org.eclipse.qvtd.xtext.qvtbase.tests.LoadTestCase;
@@ -63,6 +64,7 @@
import org.junit.Before;
import org.junit.Test;
+import cg._Source2Target_qvtp_qvtcas.Source2Target_qvtp_qvtcas;
import example1.source.SourcePackage;
import example1.target.TargetPackage;
import example2.classes.ClassesPackage;
@@ -179,7 +181,6 @@
return qvtiTransf;
}
-
protected void loadEcoreFile(String ecoreFileName, EPackage ePackage) {
URI fileURI = baseURI.appendSegment(ecoreFileName);
ResourceSet rSet = getResourceSet();
@@ -280,6 +281,31 @@
myQVT.executeModelsTX_CG(txClass, "model3");
myQVT.dispose();
}
+ @Test
+ public void testExample1_CG2() throws Exception {
+ OCLstdlibPackage.eINSTANCE.getName();
+ AbstractTransformer.EXCEPTIONS.setState(true);
+ AbstractTransformer.INVOCATIONS.setState(true);
+ // DependencyAnalyzer.CALL.setState(true);
+ // DependencyAnalyzer.CREATE.setState(true);
+ // DependencyAnalyzer.FINISH.setState(true);
+ // DependencyAnalyzer.PENDING.setState(true);
+ // DependencyAnalyzer.REFINING.setState(true);
+ // DependencyAnalyzer.RETURN.setState(true);
+ // DependencyAnalyzer.START.setState(true);
+ MyQVT myQVT = new MyQVT("example1");
+ myQVT.loadGenModels("SourceMM1.genmodel", "TargetMM1.genmodel");
+ // myQVT.executeNewOCL2QVTi_CompilerChain2("Source2Target.ocl");
+ // CS2ASJavaCompilerParameters cgParams = new CS2ASJavaCompilerParametersImpl(
+ // "example1.target.lookup.util.TargetLookupSolver",
+ // "example1.target.lookup.util.TargetLookupResult",
+ // TESTS_GEN_PATH, TESTS_PACKAGE_NAME);
+ Class<? extends Transformer> txClass = Source2Target_qvtp_qvtcas.class;
+ myQVT.executeModelsTX_CG(txClass, "model1");
+ // myQVT.executeModelsTX_CG(txClass, "model2");
+ // myQVT.executeModelsTX_CG(txClass, "model3");
+ myQVT.dispose();
+ }
@Test
public void testExample1_Interpreted() throws Exception {