blob: 68b1b366eca9371b4b5e4fe075a25b3138847666 [file] [log] [blame]
<%@ jet package="org.eclipse.emf.refactor.metrics" class="CompositeCalculateClassTemplate"
imports="org.eclipse.emf.refactor.metrics.generator.core.CompositeMetricInfo"%>
<%CompositeMetricInfo info = (CompositeMetricInfo) argument; %>
package <%=info.getPackage()%>;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.refactor.metrics.interfaces.IMetricCalculator;
import org.eclipse.emf.refactor.metrics.interfaces.IOperation;
import org.eclipse.emf.refactor.metrics.core.Metric;
import org.eclipse.emf.refactor.metrics.operations.Operations;
public final class <%=info.getClassName()%> implements IMetricCalculator {
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);
IMetricCalculator calc1 = metric1.getCalculateClass();
IMetricCalculator calc2 = metric2.getCalculateClass();
calc1.setContext(this.context);
calc2.setContext(this.context);
return operation.calculate(calc1.calculate(),calc2.calculate());
}
}