bugs fixed
diff --git a/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/managers/HenshinGenerationManager.java b/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/managers/HenshinGenerationManager.java
index a9bf7d2..f277f70 100644
--- a/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/managers/HenshinGenerationManager.java
+++ b/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/managers/HenshinGenerationManager.java
@@ -1,12 +1,16 @@
package org.eclipse.emf.refactor.metrics.henshin.managers;
+import java.io.IOException;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.emf.codegen.jet.JETEmitter;
import org.eclipse.emf.codegen.jet.JETException;
import org.eclipse.emf.refactor.metrics.generator.managers.GenerationManager;
import org.eclipse.emf.refactor.metrics.generator.managers.XMLPluginFileManager;
@@ -14,6 +18,7 @@
import org.eclipse.emf.refactor.metrics.henshin.core.HenshinMetricInfo;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.osgi.framework.Bundle;
public class HenshinGenerationManager extends GenerationManager {
@@ -65,13 +70,45 @@
String generatedCode = "";
String templateName = HENSHIN_TEMPLATE_CLASS_NAME;
try {
+// MessageDialog.openError(null, null, "vor generateCode()");
generatedCode = generateCode(monitor, templateName, metricInfo);
+// MessageDialog.openError(null, null, "nach generateCode()");
saveCode(monitor, generatedCode, metricInfo);
+// MessageDialog.openError(null, null, "nach saveCode()");
} catch (JETException e) {
+// MessageDialog.openError(null, null, e.getMessage());
e.printStackTrace();
} catch (CoreException e) {
+// MessageDialog.openError(null, null, e.getMessage());
e.printStackTrace();
}
}
+
+ protected String setTemplateDirectory() {
+ String directory = "";
+ final Bundle bundle = Activator.getDefault().getBundle();
+ try {
+ directory = FileLocator.toFileURL(bundle.getEntry(TEMPLATE_DIR)).getFile();
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ return directory;
+ }
+
+ protected static String generateCode(IProgressMonitor monitor, String template, HenshinMetricInfo metricInfo) {
+ String templatePath = templateDirectory + template + TEMPLATE_FILE_EXTENSION;
+ ClassLoader classLoader = metricInfo.getClass().getClassLoader();
+ JETEmitter jetEmitter = new JETEmitter(templatePath, classLoader);
+ jetEmitter.getClasspathEntries().addAll(classpathEntries);
+ String result = "";
+ IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
+ try {
+ result = jetEmitter.generate(subMonitor, new Object[] {metricInfo});
+ } catch (JETException e) {
+ e.printStackTrace();
+ }
+ System.out.println(result);
+ return result;
+ }
}
diff --git a/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/ui/NewMetricWizardHenshin.java b/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/ui/NewMetricWizardHenshin.java
index 610bf74..c9990a0 100644
--- a/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/ui/NewMetricWizardHenshin.java
+++ b/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/ui/NewMetricWizardHenshin.java
@@ -9,9 +9,9 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.refactor.metrics.generator.interfaces.INewMetricWizard;
-import org.eclipse.emf.refactor.metrics.generator.managers.GenerationManager;
import org.eclipse.emf.refactor.metrics.generator.ui.MetricBasicDataWizardPage;
import org.eclipse.emf.refactor.metrics.henshin.core.HenshinMetricInfo;
+import org.eclipse.emf.refactor.metrics.henshin.managers.HenshinGenerationManager;
import org.eclipse.emf.refactor.metrics.managers.MetricManager;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -66,8 +66,8 @@
try{
getContainer().run(true, true, new IRunnableWithProgress(){
public void run(IProgressMonitor monitor)throws InvocationTargetException, InterruptedException{
- GenerationManager.getInstance();
- GenerationManager.createNewMetric(monitor, getMetricInfo(), targetProject);
+ HenshinGenerationManager.getInstance();
+ HenshinGenerationManager.createNewMetric(monitor, getMetricInfo(), targetProject);
}
});
}
diff --git a/org.eclipse.emf.refactor.metrics.henshin/templates/HenshinCalculateClassTemplate.javajet b/org.eclipse.emf.refactor.metrics.henshin/templates/HenshinCalculateClassTemplate.javajet
index d14ea83..22530e0 100644
--- a/org.eclipse.emf.refactor.metrics.henshin/templates/HenshinCalculateClassTemplate.javajet
+++ b/org.eclipse.emf.refactor.metrics.henshin/templates/HenshinCalculateClassTemplate.javajet
@@ -1,5 +1,5 @@
<%@ jet package="org.eclipse.emf.refactor.metrics" class="HenshinCalculateClass"
-imports="org.eclipse.emf.refactor.metrics.henshin.generator.HenshinMetricInfo"%>
+imports="org.eclipse.emf.refactor.metrics.henshin.core.HenshinMetricInfo"%>
<%HenshinMetricInfo info = (HenshinMetricInfo) argument; %>
package <%=info.getPackage()%>;