diff options
author | Ed Willink | 2015-06-24 16:32:20 +0000 |
---|---|---|
committer | Ed Willink | 2015-06-25 11:41:30 +0000 |
commit | cdc2484104abe17ae40deb54f3190eade13319af (patch) | |
tree | 3021f600ffd15f19abf43d5404d6794aebc39d30 | |
parent | 5518c6d66e5235d4cabb299858d215dd547100af (diff) | |
download | org.eclipse.qvtd-cdc2484104abe17ae40deb54f3190eade13319af.tar.gz org.eclipse.qvtd-cdc2484104abe17ae40deb54f3190eade13319af.tar.xz org.eclipse.qvtd-cdc2484104abe17ae40deb54f3190eade13319af.zip |
[458359] Complete autogeneration of CS2AS CG lookup
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 |