Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2015-06-24 16:32:20 +0000
committerEd Willink2015-06-25 11:41:30 +0000
commitcdc2484104abe17ae40deb54f3190eade13319af (patch)
tree3021f600ffd15f19abf43d5404d6794aebc39d30
parent5518c6d66e5235d4cabb299858d215dd547100af (diff)
downloadorg.eclipse.qvtd-cdc2484104abe17ae40deb54f3190eade13319af.tar.gz
org.eclipse.qvtd-cdc2484104abe17ae40deb54f3190eade13319af.tar.xz
org.eclipse.qvtd-cdc2484104abe17ae40deb54f3190eade13319af.zip
[458359] Complete autogeneration of CS2AS CG lookup
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.build/.classpath2
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.build/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/modelspecs/CS2ASCGValuedElementModelSpec.java40
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/Generate CS2AS CG Models.launch14
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCS2ASCGModel.mwe22
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.compiler/emf-gen/org/eclipse/qvtd/cs2as/compiler/cgmodel/impl/CGLookupCallExpImpl.java25
6 files changed, 84 insertions, 2 deletions
diff --git a/plugins/org.eclipse.qvtd.cs2as.build/.classpath b/plugins/org.eclipse.qvtd.cs2as.build/.classpath
index 098194ca4..55529ad64 100644
--- a/plugins/org.eclipse.qvtd.cs2as.build/.classpath
+++ b/plugins/org.eclipse.qvtd.cs2as.build/.classpath
@@ -2,6 +2,6 @@
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
+ <classpathentry excluding="**/*.launch" kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/plugins/org.eclipse.qvtd.cs2as.build/META-INF/MANIFEST.MF b/plugins/org.eclipse.qvtd.cs2as.build/META-INF/MANIFEST.MF
index eccf9d71a..34f302c3c 100644
--- a/plugins/org.eclipse.qvtd.cs2as.build/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.qvtd.cs2as.build/META-INF/MANIFEST.MF
@@ -7,5 +7,6 @@ Export-Package: org.eclipse.qvtd.cs2as.build.mwe
Require-Bundle: org.eclipse.emf.mwe.core;bundle-version="[1.3.10,2.0.0)",
org.eclipse.emf.mwe.utils;bundle-version="[1.3.10,2.0.0)",
org.eclipse.ocl.examples.build;bundle-version="[2.1.0,2.2.0)",
- org.eclipse.qvtd.cs2as.compiler;bundle-version="[0.13.0,0.14.0)"
+ org.eclipse.qvtd.cs2as.compiler;bundle-version="[0.13.0,0.14.0)",
+ org.eclipse.emf.codegen.ecore;bundle-version="[2.7.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/modelspecs/CS2ASCGValuedElementModelSpec.java b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/modelspecs/CS2ASCGValuedElementModelSpec.java
new file mode 100644
index 000000000..bd398cddf
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/modelspecs/CS2ASCGValuedElementModelSpec.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Willink Transformations and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.qvtd.cs2as.build.modelspecs;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.build.modelspecs.CGValuedElementModelSpec;
+import org.eclipse.qvtd.cs2as.compiler.cgmodel.CGLookupCallExp;
+
+/**
+ * CGValuedElementModelSpec supports generation of the many methods that contribute to the CGValuedElement.xxxx() method hierarchy.
+ * <p>
+ * The exposition here as a two-dimensional Java table provides a readable, type-checked preserntation that would be harder to achieve
+ * using a spreadsheet (poor checking) or a model (no 2D tools).
+ */
+public class CS2ASCGValuedElementModelSpec extends CGValuedElementModelSpec
+{
+
+ public static class Register {
+ public Register() {
+// new CGValuedElementModelSpec(CGVariable.class, "init", null , Ref.DELEG, null , Nul.VAR , Inv.VAR , null , null , null , null , null , null , null , null , null );
+ new CS2ASCGValuedElementModelSpec(CGLookupCallExp.class, null, Box.UNBOX, null , null , null , null , Glo.FALSE, null , null , null , null , null , null , null , null , null , null , null );
+ }
+ }
+
+ protected CS2ASCGValuedElementModelSpec(@NonNull Class<?> cgClass, @Nullable String delegate,
+ @Nullable Box box, @Nullable Ths ths, @Nullable Log log, @Nullable Nul nul, @Nullable Inv inv,
+ @Nullable Glo glo, @Nullable Inl inl, @Nullable Set set, @Nullable Ct ct, @Nullable Con con,
+ @Nullable Val val, @Nullable Cvl cvl, @Nullable Ctx ctx, @Nullable Ctl ctl, @Nullable Com com, @Nullable Rew rew, @Nullable Eq eq) {
+ super(cgClass, delegate, box, ths, log, nul, inv, glo, inl, set, ct, con, val, cvl, ctx, ctl, com, rew, eq);
+ }
+}
diff --git a/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/Generate CS2AS CG Models.launch b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/Generate CS2AS CG Models.launch
new file mode 100644
index 000000000..87b31c19c
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/Generate CS2AS CG Models.launch
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.qvtd.cs2as.build"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCS2ASCGModel.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.qvtd.cs2as.build"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+</launchConfiguration>
diff --git a/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCS2ASCGModel.mwe2 b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCS2ASCGModel.mwe2
index e108a07f8..b6e8f508b 100644
--- a/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCS2ASCGModel.mwe2
+++ b/plugins/org.eclipse.qvtd.cs2as.build/src/org/eclipse/qvtd/cs2as/build/mwe/GenerateCS2ASCGModel.mwe2
@@ -14,6 +14,7 @@ module org.eclipse.qvtd.cs2as.compiler.tests.GenerateExample2Models
import org.eclipse.ocl.examples.build.utilities.*
import org.eclipse.ocl.examples.build.xtend.*
+import org.eclipse.qvtd.cs2as.build.modelspecs.*
import org.eclipse.emf.mwe.utils.*
import org.eclipse.emf.ecore.resource.impl.*
@@ -26,6 +27,7 @@ Workflow {
scanClassPath = true
}
bean = EcoreGenModelSetup { resourceSet = resourceSet }
+ bean = CS2ASCGValuedElementModelSpec.Register {}
component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
genModel = "/${projectName}/model/cs2ascgmodel.genmodel"
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/emf-gen/org/eclipse/qvtd/cs2as/compiler/cgmodel/impl/CGLookupCallExpImpl.java b/plugins/org.eclipse.qvtd.cs2as.compiler/emf-gen/org/eclipse/qvtd/cs2as/compiler/cgmodel/impl/CGLookupCallExpImpl.java
index 1b65c563e..b1aa5d0fc 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/emf-gen/org/eclipse/qvtd/cs2as/compiler/cgmodel/impl/CGLookupCallExpImpl.java
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/emf-gen/org/eclipse/qvtd/cs2as/compiler/cgmodel/impl/CGLookupCallExpImpl.java
@@ -13,6 +13,7 @@
package org.eclipse.qvtd.cs2as.compiler.cgmodel.impl;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGOperationCallExpImpl;
import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
import org.eclipse.qvtd.cs2as.compiler.cgmodel.CGLookupCallExp;
@@ -56,6 +57,14 @@ public class CGLookupCallExpImpl extends CGOperationCallExpImpl implements CGLoo
return (R) ((CS2ASCGModelVisitor<?>)visitor).visitCGLookupCallExp(this);
}
+ /**
+ * {@inheritDoc}
+ * @generated
+ */
+ public EClassifier getEcoreClassifier() {
+ return null;
+ }
+
// FIXME use the CGModelSpecs
@Override
public boolean isUnboxed() {
@@ -67,4 +76,20 @@ public class CGLookupCallExpImpl extends CGOperationCallExpImpl implements CGLoo
return false;
}
+ /**
+ * {@inheritDoc}
+ * @generated
+ */
+ public boolean isEcore() {
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ * @generated
+ */
+ public boolean isGlobal() {
+ return false;
+ }
+
} //CGLookupCallExpImpl

Back to the top