jet templates added
diff --git a/org.eclipse.emf.refactor.smells.generator/templates/JavaFinderClassTemplate.javajet b/org.eclipse.emf.refactor.smells.generator/templates/JavaFinderClassTemplate.javajet
new file mode 100644
index 0000000..4bedb37
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.generator/templates/JavaFinderClassTemplate.javajet
@@ -0,0 +1,20 @@
+<%@ jet package="org.eclipse.emf.refactor.smells" class="ModelSmellFinderClass"
+imports="org.eclipse.emf.refactor.smells.generator.core.ModelSmellInfo"%>
+<%ModelSmellInfo info = (ModelSmellInfo)argument; %>
+package <%=info.getPackage()%>;
+
+import java.util.LinkedList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.refactor.smells.interfaces.IModelSmellFinderClass;
+
+
+public final class <%=info.getClassName()%> implements IModelSmellFinderClass {
+
+	@Override
+	public LinkedList<LinkedList<EObject>> findSmell(EObject root) {
+		LinkedList<LinkedList<EObject>> results = new LinkedList<LinkedList<EObject>>();
+		// TODO Fill results
+		return results;
+	}
+	
+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.smells.generator/templates/MetricBasedFinderClassTemplate.javajet b/org.eclipse.emf.refactor.smells.generator/templates/MetricBasedFinderClassTemplate.javajet
new file mode 100644
index 0000000..f665afe
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.generator/templates/MetricBasedFinderClassTemplate.javajet
@@ -0,0 +1,55 @@
+<%@ package="org.eclipse.emf.refactor.smells" class="ModelSmellFinderClass"
+imports="org.eclipse.emf.refactor.smells.generator.core.MetricBasedModelSmellInfo"%>
+<%MetricBasedModelSmellInfo info = (MetricBasedModelSmellInfo)argument; %>
+package <%=info.getPackage()%>;
+
+import java.util.LinkedList;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.refactor.metrics.core.Metric;
+import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;
+import org.eclipse.emf.refactor.smells.core.MetricBasedModelSmellFinderClass;
+
+
+public final class <%=info.getClassName()%> extends MetricBasedModelSmellFinderClass {
+
+	private String metricId = "<%=info.getMetricID()%>";
+	private Metric localMetric = Metric.getMetricInstanceFromId(metricId);
+	
+	@Override
+	public LinkedList<LinkedList<EObject>> findSmell(EObject root) {
+		LinkedList<EObject> rootList = new LinkedList<EObject>();
+		rootList.add(root);
+		ICalculateClass localCalculateClass = localMetric.getCalculateClass();
+		double globalLimit = this.getLimit();
+		return findSmellyObjectGroups(root, globalLimit, localCalculateClass);
+	}
+	
+	private LinkedList<LinkedList<EObject>> findSmellyObjectGroups(EObject root, double globalLimit, 
+				ICalculateClass localCalculateClass){
+		String context = localMetric.getContext();
+		LinkedList<LinkedList<EObject>> smellyEObjects = new LinkedList<LinkedList<EObject>>();
+		List<EObject> containedEObjects = root.eContents();
+		for(EObject object : containedEObjects){
+			String objectType = object.eClass().getInstanceClass().getSimpleName();
+			if(objectType.equals(context)){
+				LinkedList<EObject> rootList = new LinkedList<EObject>();
+				rootList.add(object);
+				localCalculateClass.setContext(rootList);
+				double localValue = localCalculateClass.calculate();
+				if (limitReached(localValue, globalLimit)) {
+					LinkedList<EObject> currentObjects = new LinkedList<EObject>();
+					currentObjects.add(object);
+					smellyEObjects.add((currentObjects));
+				}
+			} else {
+				smellyEObjects.addAll(findSmellyObjectGroups(object, globalLimit, localCalculateClass));
+			}
+		}
+		return smellyEObjects;
+	}
+	
+	private boolean limitReached(double localValue, double globalLimit) {
+		return (localValue <%=info.getComparator()%> globalLimit);
+	}	
+}
\ No newline at end of file