blob: e1e2fd751b26cc8b06417f06f35982003412b42d [file] [log] [blame]
<%@ jet package="de.unimarburg.swt.emf.metrics" class="CompositeCalculateClassTemplate"
imports="de.unimarburg.swt.emf.metrics.model.generator.CompositeMetricInfo"%>
<%CompositeMetricInfo info = (CompositeMetricInfo) argument; %>
package <%=info.getPackage()%>;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import de.unimarburg.swt.emf.metrics.interfaces.ICalculateClass;
import de.unimarburg.swt.emf.metrics.model.Metric;
import de.unimarburg.swt.emf.metrics.operations.IOperation;
import de.unimarburg.swt.emf.metrics.operations.Operations;
public final class <%=info.getClassName()%> implements ICalculateClass{
private List<EObject> context;
private String metricID1 = "<%=info.getFirstMetric().getId()%>";
private String metricID2 = "<%=info.getSecondMetric().getId()%>";
IOperation operation = Operations.getOperation("<%=info.getOperationName()%>");
@Override
public void setContext(List<EObject> context) {
this.context = context;
}
@Override
public double calculate() {
Metric metric1 = Metric.getMetricInstanceFromId(metricID1);
Metric metric2 = Metric.getMetricInstanceFromId(metricID2);
ICalculateClass calc1 = metric1.getCalculateClass();
ICalculateClass calc2 = metric2.getCalculateClass();
calc1.setContext(this.context);
calc2.setContext(this.context);
return operation.calculate(calc1.calculate(),calc2.calculate());
}
}