| <%@ 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()); |
| } |
| |
| } |