package it.unisa.sesa.repominer.db; import it.unisa.sesa.repominer.db.entities.Method; import it.unisa.sesa.repominer.db.entities.Metric; import it.unisa.sesa.repominer.db.entities.MetricMethod; import java.sql.Connection; import java.util.List; import net.sf.jeasyorm.EntityManager; public class MetricMethodDAO { /** * This method return a list of metrics method * * @param pMethod * @return A list of MetricMethod objects */ public List<MetricMethod> getMetricsOfMethod(Method pMethod) { Connection connection = ConnectionPool.getInstance().getConnection(); EntityManager em = EntityManager.getInstance(connection); List<MetricMethod> methodMetrics = em.find(MetricMethod.class, "where method=?", pMethod.getId()); List<Metric> metricsDescription = em .find(Metric.class, "where id in (select metric from metrics_method where method=?)", pMethod.getId()); for (int i = 0; i < methodMetrics.size(); i++) { if (metricsDescription.get(i) != null) { methodMetrics.get(i).setDescription( metricsDescription.get(i).getDescription()); methodMetrics.get(i).setId(metricsDescription.get(i).getId()); methodMetrics.get(i).setName( metricsDescription.get(i).getName()); } } ConnectionPool.getInstance().releaseConnection(connection); return methodMetrics; } /** * This method return a metric of a method * * @param pMetric * @param pMethod * @return A MetricMethod object */ public MetricMethod getMetric(Metric pMetric, Method pMethod) { Connection connection = ConnectionPool.getInstance().getConnection(); EntityManager em = EntityManager.getInstance(connection); MetricMethod metricMethod = em .findUnique(MetricMethod.class, "where method=? and metric=?", pMethod.getId(), pMetric.getId()); metricMethod.setDescription(pMetric.getDescription()); metricMethod.setName(pMetric.getName()); metricMethod.setId(pMetric.getId()); ConnectionPool.getInstance().releaseConnection(connection); return metricMethod; } }