/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package br.uff.ic.oceano.core.service.plano; import br.uff.ic.oceano.core.exception.ExecutionPlanException; import br.uff.ic.oceano.core.factory.ObjectFactory; import br.uff.ic.oceano.core.model.SoftwareProject; import br.uff.ic.oceano.ostra.model.Task; import br.uff.ic.oceano.core.service.MetricValueService; import br.uff.ic.oceano.core.service.SoftwareProjectService; import br.uff.ic.oceano.core.tools.vcs.SVN_By_SVNKit; import br.uff.ic.oceano.core.tools.vcs.VCS; /** * * @author DanCastellani */ public class ExtractMetricsPlan implements Plan { private SoftwareProjectService projectService = ObjectFactory.getObjectWithDataBaseDependencies(SoftwareProjectService.class); private MetricValueService metricValueService = ObjectFactory.getObjectWithDataBaseDependencies(MetricValueService.class); private VCS svn = ObjectFactory.getObjectWithDataBaseDependencies(SVN_By_SVNKit.class); public void execute(Task task) throws ExecutionPlanException { System.out.println("************************************************************************************************************************"); System.out.println("************************************************************************************************************************"); final SoftwareProject project = task.getProject(); System.out.println("verificando o que deve ser feito"); if (mayCheckout(project)) { System.out.println("fazendo checkout do projeto"); checkoutProject(project); } if (mayMeasure(project)) { System.out.println("extraindo metricas do projeto"); extractAndSaveMetrics(task); } System.out.println("************************************************************************************************************************"); System.out.println("************************************************************************************************************************"); } private boolean mayCheckout(SoftwareProject project) { throw new RuntimeException("Este método deve ser refatorado!"); // final int situation = project.getSituation(); // return situation == Project.SITUATION_REGISTERED // || situation == Project.SITUATION_CHECKOUT_SCHEDULED // || situation == Project.SITUATION_CHECKING_OUT; } private boolean mayMeasure(final SoftwareProject project) { throw new RuntimeException("Este método deve ser refatorado!"); // final int situation = project.getSituation(); // return situation == Project.SITUATION_UNMEASURED || situation == Project.SITUATION_MEASUREMENT_SCHEDULED || situation == Project.SITUATION_MEASURING; } private void checkoutProject(SoftwareProject project) throws ExecutionPlanException { throw new RuntimeException("Este método deve ser refatorado!"); // try { // System.out.println(">>>>>>>>>> chekout_ " + new Date()); // projectService.checkingOut(project); // // svn.doCheckout(project.getConfiguration()); // // System.out.println(">>>>>>>>>> chekout terminado _ " + new Date()); // projectService.unmeasured(project); // // } catch (VCSException ex) { // projectService.checkOutError(project); // throw new ExecutionPlanException(ex); // } } private void extractAndSaveMetrics(Task task) throws ExecutionPlanException { throw new RuntimeException("Este método deve ser refatorado!"); // try { // System.out.println(">>>>>>>> extractAndSaveMetrics from task: " + task); // projectService.measuring(task.getProject()); // final Project project = task.getProject(); // // List<MetricValue> metricsExtracted = new LinkedList<MetricValue>(); // for (MetricManager metric : MetricsFactory.getInstance().getMetrics()) { // System.out.println("Extraindo métrica " + metric.getName()); // metricsExtracted.add(metric.extractMetric(project.getConfiguration())); // System.out.println("Valor: " + metricsExtracted.get(metricsExtracted.size() - 1).getValue()); // } // // metricValueService.saveAll(metricsExtracted); // projectService.measured(task.getProject()); // // } catch (MetricException ex) { // projectService.measurementError(task.getProject()); // throw new ExecutionPlanException(ex); // } } }