manager class HenshinRuntimeManager added
diff --git a/org.eclipse.emf.refactor.smells.henshin/src/org/eclipse/emf/refactor/smells/henshin/managers/HenshinRuntimeManager.java b/org.eclipse.emf.refactor.smells.henshin/src/org/eclipse/emf/refactor/smells/henshin/managers/HenshinRuntimeManager.java
new file mode 100644
index 0000000..0b7605f
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.henshin/src/org/eclipse/emf/refactor/smells/henshin/managers/HenshinRuntimeManager.java
@@ -0,0 +1,48 @@
+package org.eclipse.emf.refactor.smells.henshin.managers;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.henshin.interpreter.EGraph;
+import org.eclipse.emf.henshin.interpreter.Engine;
+import org.eclipse.emf.henshin.interpreter.Match;
+import org.eclipse.emf.henshin.interpreter.RuleApplication;
+import org.eclipse.emf.henshin.interpreter.impl.EGraphImpl;
+import org.eclipse.emf.henshin.interpreter.impl.EngineImpl;
+import org.eclipse.emf.henshin.interpreter.impl.RuleApplicationImpl;
+import org.eclipse.emf.henshin.interpreter.util.InterpreterUtil;
+import org.eclipse.emf.henshin.interpreter.util.ModelHelper;
+import org.eclipse.emf.henshin.model.Rule;
+import org.eclipse.emf.henshin.model.TransformationSystem;
+
+@SuppressWarnings("deprecation")
+public class HenshinRuntimeManager {
+
+	private final static String MAIN_RULE = "mainRule";
+
+	public static LinkedList<LinkedList<EObject>> run(EObject rootElement, String henshinFilePath) {		
+		LinkedList<LinkedList<EObject>> result = new LinkedList<LinkedList<EObject>>();
+		EObject root = rootElement;
+		TransformationSystem transformationSystem = 
+				(TransformationSystem) ModelHelper.loadFile(henshinFilePath);			
+		EGraph graph = new EGraphImpl();
+		graph.addTree(root);		
+		Engine engine = new EngineImpl();
+		Rule rule = (Rule) transformationSystem.findRuleByName(MAIN_RULE);
+		
+		RuleApplication application = new RuleApplicationImpl(engine, graph, rule, null);
+		
+		List<Match> matches = InterpreterUtil.findAllMatches(engine,
+				application.getRule(), application.getEGraph(),
+				application.getPartialMatch());
+		
+		for (Match match : matches) {
+			LinkedList<EObject> eObjects = new LinkedList<EObject>();
+			eObjects.addAll(match.getNodeTargets());
+			result.add(eObjects);
+		}
+		
+		return  result;
+	}
+}