Browse Source

Adopted Java, C and Cpp Code Generators to new Code Generator Infrastructure

Andreas Mülder 14 years ago
parent
commit
eb749130d1

+ 1 - 1
plugins/org.yakindu.sct.generator.c/META-INF/MANIFEST.MF

@@ -18,7 +18,7 @@ Require-Bundle: org.yakindu.sct.model.sexec,
  org.eclipse.xtend,
  org.eclipse.xtend.typesystem.emf,
  org.yakindu.sct.model.stext,
- org.yakindu.sct.generator.base;bundle-version="1.0.0"
+ org.yakindu.sct.generator.core;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.yakindu.sct.generator.c.templates
 Bundle-Vendor: YAKINDU

+ 9 - 6
plugins/org.yakindu.sct.generator.c/plugin.xml

@@ -2,10 +2,13 @@
 <?eclipse version="3.4"?>
 
 <plugin>
-	<extension point="org.yakindu.sct.builder.subscriber">
-      <BuilderSubscriber
-         class="org.yakindu.sct.generator.c.subscriber.CCodeGeneratorSubscriber" 
-         resourceExtension="sct">
-      </BuilderSubscriber>
-   </extension>
+   <extension
+         point="org.yakindu.sct.generator.core">
+      <SCTGenerator
+            class="org.yakindu.sct.generator.c.subscriber.CCodeGenerator"
+            description="YAKINDU C Code Generator"
+            id="yakindu::c"
+            name="YAKINDU C Code Generator">
+      </SCTGenerator>
+   </extension>
 </plugin>

+ 27 - 0
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/subscriber/CCodeGenerator.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU 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:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.generator.c.subscriber;
+
+import org.yakindu.sct.generator.core.impl.AbstractXpandBasedCodeGenerator;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class CCodeGenerator extends AbstractXpandBasedCodeGenerator {
+
+	@Override
+	public String getTemplatePath() {
+		return "org::yakindu::sct::generator::c::templates::Main::main";
+	}
+
+}

+ 1 - 1
plugins/org.yakindu.sct.generator.cpp/META-INF/MANIFEST.MF

@@ -18,7 +18,7 @@ Require-Bundle: org.yakindu.sct.model.sexec,
  org.eclipse.xtend,
  org.eclipse.xtend.typesystem.emf,
  org.yakindu.sct.model.stext,
- org.yakindu.sct.generator.base;bundle-version="1.0.0"
+ org.yakindu.sct.generator.core;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.yakindu.sct.generator.cpp.subscriber,
  org.yakindu.sct.generator.cpp.templates

+ 9 - 6
plugins/org.yakindu.sct.generator.cpp/plugin.xml

@@ -2,10 +2,13 @@
 <?eclipse version="3.4"?>
 
 <plugin>
-	<extension point="org.yakindu.sct.builder.subscriber">
-      <BuilderSubscriber
-         class="org.yakindu.sct.generator.cpp.subscriber.CppCodeGeneratorSubscriber" 
-         resourceExtension="sct">
-      </BuilderSubscriber>
-   </extension>
+   <extension
+         point="org.yakindu.sct.generator.core">
+      <SCTGenerator
+            class="org.yakindu.sct.generator.cpp.subscriber.CppCodeGenerator"
+            description="YAKINDU.org C++ Code Generator"
+            id="yakindu::cpp"
+            name="YAKINDU.org C++ Code Generator">
+      </SCTGenerator>
+   </extension>
 </plugin>

+ 27 - 0
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/subscriber/CppCodeGenerator.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU 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:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.generator.cpp.subscriber;
+
+import org.yakindu.sct.generator.core.impl.AbstractXpandBasedCodeGenerator;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class CppCodeGenerator extends AbstractXpandBasedCodeGenerator {
+
+	@Override
+	public String getTemplatePath() {
+		return "org::yakindu::sct::generator::cpp::templates::Main::main";
+	}
+
+}

+ 0 - 27
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/subscriber/CppCodeGeneratorSubscriber.java

@@ -1,27 +0,0 @@
-package org.yakindu.sct.generator.cpp.subscriber;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IResource;
-import org.yakindu.sct.generator.base.util.AbstractXpandCodeGeneratorSubscriber;
-
-/**
- * 
- * @author andreas muelder - Initial contribution and API
- * 
- */
-public class CppCodeGeneratorSubscriber extends
-		AbstractXpandCodeGeneratorSubscriber {
-
-	@Override
-	public String getTemplatePath() {
-		return "org::yakindu::sct::generator::cpp::templates::Main::main";
-	}
-
-	@Override
-	public String getOutletPath(IResource resource) {
-		return "src-gen" + File.separator
-				+ resource.getName().replaceAll(" ", "");
-	}
-
-}

+ 1 - 2
plugins/org.yakindu.sct.generator.java/META-INF/MANIFEST.MF

@@ -16,9 +16,8 @@ Require-Bundle: org.eclipse.jdt.core;bundle-version="3.5.0",
  org.eclipse.xpand;bundle-version="0.7.0",
  org.eclipse.xtend;bundle-version="0.7.0",
  org.eclipse.xtend.typesystem.emf;bundle-version="0.7.0",
- org.yakindu.sct.generator.base;bundle-version="1.0.0",
  org.yakindu.sct.model.stext;bundle-version="1.0.0",
- org.yakindu.sct.model.sgen;bundle-version="1.0.0"
+ org.yakindu.sct.generator.core;bundle-version="1.0.0"
 Bundle-Vendor: YAKINDU
 Export-Package: org.yakindu.sct.generator.java
 Bundle-ActivationPolicy: lazy

+ 4 - 9
plugins/org.yakindu.sct.generator.java/plugin.xml

@@ -1,18 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.4"?>
 <plugin>
-   <extension point="org.yakindu.sct.builder.subscriber">
-      <BuilderSubscriber
-         class="org.yakindu.sct.generator.java.JavaCodegeneratorBuilderSubscriber" 
-         resourceExtension="sct">
-      </BuilderSubscriber>
-   </extension>
    <extension
-         point="org.yakindu.sct.builder.generator">
+         point="org.yakindu.sct.generator.core">
       <SCTGenerator
             class="org.yakindu.sct.generator.java.JavaSCTGenerator"
-            name="SCT Java Generator"
-            resourceExtension="javagen">
+            description="YAKINDU Java Code Generator"
+            id="yakindu::java"
+            name="YAKINDU Java generator">
       </SCTGenerator>
    </extension>
 

+ 0 - 21
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/JavaCodegeneratorBuilderSubscriber.java

@@ -1,21 +0,0 @@
-package org.yakindu.sct.generator.java;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IResource;
-import org.yakindu.sct.generator.base.util.AbstractXpandCodeGeneratorSubscriber;
-
-public class JavaCodegeneratorBuilderSubscriber extends AbstractXpandCodeGeneratorSubscriber{
-
-	@Override
-	public String getTemplatePath() {
-		return "org::yakindu::sct::generator::java::templates::Main::main";
-	}
-
-	@Override
-	public String getOutletPath(IResource resource) {
-		return "src-gen" + File.separator
-				+ resource.getName().replaceAll(" ", "");
-	}
-
-}

+ 22 - 9
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/JavaSCTGenerator.java

@@ -1,17 +1,30 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU 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:
+ *     committers of YAKINDU - initial API and implementation
+ */
 package org.yakindu.sct.generator.java;
 
-import org.yakindu.sct.generator.base.AbstractSCTGenerator;
-import org.yakindu.sct.model.sgen.GeneratorModel;
+import org.yakindu.sct.generator.core.ISCTGenerator;
+import org.yakindu.sct.generator.core.impl.AbstractXpandBasedCodeGenerator;
 
-public class JavaSCTGenerator extends AbstractSCTGenerator<GeneratorModel> {
-
-	private static final String GENMODEL_EXTENSION = "javagen";
+/**
+ * Implementation of {@link ISCTGenerator} interface registered via extension
+ * point
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class JavaSCTGenerator extends AbstractXpandBasedCodeGenerator {
 
 	@Override
-	public void generate(GeneratorModel genmodel) {
-		System.out.println("------------------------");
-		System.out.println("JavaSCTGenerator.generate() " + genmodel);
-		System.out.println("------------------------");
+	public String getTemplatePath() {
+		return "org::yakindu::sct::generator::java::templates::Main::main";
 	}
 
 }