Browse Source

re-enabled BuilderSubsribers until Generators are ready to be used

holger.willebrandt@gmail.com 14 years ago
parent
commit
b1cff7d208

+ 10 - 2
plugins/org.yakindu.sct.generator.base/src/org/yakindu/sct/generator/base/util/AbstractXpandCodeGeneratorSubscriber.java

@@ -6,6 +6,7 @@ import java.io.IOException;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.yakindu.sct.builder.subscriber.IBuilderSubscriber;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sgraph.Statechart;
@@ -23,16 +24,23 @@ public abstract class AbstractXpandCodeGeneratorSubscriber implements
 	public abstract String getOutletPath(IResource resource);
 
 	public void doBuild(IResource resource) {
+		System.out.println(getClass() + ".doBuild()");
 		try {
 			IProject project = resource.getProject();
 			Statechart statechart;
-			if (resource == null || !resource.exists())
+			if (resource == null || !resource.exists()) {
 				return;
+			}
 			statechart = GeneratorBaseUtil.loadStatechart(resource);
 
 			ExecutionFlow executionFlow = GeneratorBaseUtil
 					.createExecutionFlowModel(statechart);
-			String absoluteTargetFolder = project.getRawLocation().toOSString() + File.separator + getOutletPath(resource);
+			IPath location = project.getRawLocation();
+			if (location == null) {
+				location = project.getLocation();
+			}
+			String absoluteTargetFolder = location.toOSString()
+					+ File.separator + getOutletPath(resource);
 			GeneratorBaseUtil.generate(executionFlow, getTemplatePath(),
 					project, absoluteTargetFolder);
 		} catch (CoreException e) {

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

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

+ 11 - 0
plugins/org.yakindu.sct.generator.c/plugin.xml

@@ -0,0 +1,11 @@
+<?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.c.subscriber.CCodeGeneratorSubscriber" 
+         resourceExtension="sct">
+      </BuilderSubscriber>
+   </extension>
+</plugin>

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

@@ -0,0 +1,27 @@
+package org.yakindu.sct.generator.c.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 CCodeGeneratorSubscriber extends
+		AbstractXpandCodeGeneratorSubscriber {
+
+	@Override
+	public String getTemplatePath() {
+		return "org::yakindu::sct::generator::c::templates::Main::main";
+	}
+
+	@Override
+	public String getOutletPath(IResource resource) {
+		return "src-gen" + File.separator
+				+ resource.getName().replaceAll(" ", "");
+	}
+
+}

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

@@ -2,6 +2,10 @@
 <?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>
 </plugin>

+ 6 - 1
plugins/org.yakindu.sct.generator.java/plugin.xml

@@ -1,8 +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">
       <SCTGenerator
             class="org.yakindu.sct.generator.java.JavaSCTGenerator"