class HenshinGenerationManager added
diff --git a/org.eclipse.emf.refactor.metrics.henshin/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.metrics.henshin/META-INF/MANIFEST.MF
index 772d7a7..5e6cb18 100644
--- a/org.eclipse.emf.refactor.metrics.henshin/META-INF/MANIFEST.MF
+++ b/org.eclipse.emf.refactor.metrics.henshin/META-INF/MANIFEST.MF
@@ -7,10 +7,12 @@
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.core.resources;bundle-version="3.8.0",
+ org.eclipse.jdt.core;bundle-version="3.8.1",
  org.eclipse.emf.ecore;bundle-version="2.8.1",
  org.eclipse.emf.refactor.metrics;bundle-version="0.7.0",
  org.eclipse.emf.refactor.metrics.generator;bundle-version="0.7.0",
- org.eclipse.emf.henshin.interpreter;bundle-version="0.9.2"
+ org.eclipse.emf.henshin.interpreter;bundle-version="0.9.2",
+ org.eclipse.emf.codegen;bundle-version="2.8.0"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Export-Package: org.eclipse.emf.refactor.metrics.henshin.managers
diff --git a/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/HenshinGenerationManager.java b/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/HenshinGenerationManager.java
new file mode 100644
index 0000000..f2a673e
--- /dev/null
+++ b/org.eclipse.emf.refactor.metrics.henshin/src/org/eclipse/emf/refactor/metrics/henshin/HenshinGenerationManager.java
@@ -0,0 +1,75 @@
+package org.eclipse.emf.refactor.metrics.henshin;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.codegen.jet.JETException;
+import org.eclipse.emf.refactor.metrics.generator.managers.DependenciesManager;
+import org.eclipse.emf.refactor.metrics.generator.managers.GenerationManager;
+import org.eclipse.emf.refactor.metrics.generator.managers.XMLPluginFileManager;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.JavaCore;
+import org.osgi.framework.Bundle;
+
+public class HenshinGenerationManager extends GenerationManager {
+	
+	private static final String HENSHIN_TEMPLATE_CLASS_NAME = "HenshinCalculateClassTemplate";
+	
+	private HenshinGenerationManager() {
+		templateDirectory = setTemplateDirectory();
+		classpathEntries = setClassPathEntries();
+		System.out.println("HenshinGenerationManager initialized!");
+	}
+	
+	public static HenshinGenerationManager getInstance() {
+		if (instance == null) {
+			instance = new HenshinGenerationManager();
+		}
+		return (HenshinGenerationManager) instance;
+	}
+	
+	protected List<IClasspathEntry> setClassPathEntries() {
+		List<IClasspathEntry> cpe = super.setClassPathEntries();
+		Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+	    // add org.eclipse.emf.refactor.metrics.henshin to class path
+	    String version = (String) bundle.getHeaders().get(BUNDLEVERSION);
+	    cpe.add(JavaCore.newLibraryEntry(new Path(PLUGINSPATH + 
+	    		Activator.PLUGIN_ID + "_" + version + ".jar"), null, null));
+	    return cpe;
+	}
+	
+	public static void createNewMetric(IProgressMonitor monitor,
+			HenshinMetricInfo metricInfo, IProject targetProject) {
+		System.out.println(metricInfo);
+		DependenciesManager.updateDependencies(metricInfo);
+		createCalculateClass(monitor, metricInfo);		
+		XMLPluginFileManager.createMetricEntry(metricInfo.getProjectPath(), 
+				metricInfo.getName(), metricInfo.getId(), 
+				metricInfo.getDescription(), metricInfo.getMetamodel(), 
+				metricInfo.getContext(), metricInfo.getPackage()+"."+metricInfo.getClassName());
+		try {
+			targetProject.refreshLocal(IProject.DEPTH_INFINITE, monitor);
+			targetProject.refreshLocal(IProject.DEPTH_INFINITE, monitor);
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	private static void createCalculateClass(IProgressMonitor monitor, HenshinMetricInfo metricInfo) {
+		String generatedCode = "";
+		String templateName = HENSHIN_TEMPLATE_CLASS_NAME;
+		try {
+			generatedCode = generateCode(monitor, templateName, metricInfo);
+		    saveCode(monitor, generatedCode, metricInfo);
+		} catch (JETException e) {
+			e.printStackTrace();
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+	}
+
+}