package br.uff.ic.oceano.core.service; ///* // * To change this template, choose Tools | Templates // * and open the template in the editor. // */ //package br.uff.ic.oceano.service; // //import br.uff.ic.oceano.core.dao.TaskDao; //import br.uff.ic.oceano.core.dao.impl.TaskDaoImpl; //import br.uff.ic.oceano.core.exception.ExecutionPlanException; //import br.uff.ic.oceano.core.factory.ObjectFactory; //import br.uff.ic.oceano.ostra.model.Task; //import br.uff.ic.oceano.core.service.controletransacao.Transacional; //import br.uff.ic.oceano.util.ThreadTask; //import java.util.ArrayList; //import java.util.HashMap; //import java.util.List; //import java.util.Map; //import java.util.concurrent.ConcurrentHashMap; // ///** // * // * @author daniel // */ //public class TaskService { // // private static Map<ThreadTask, Boolean> mapTasks = new ConcurrentHashMap<ThreadTask, Boolean>(); // private static final Map<String, Integer> mapTypes = new HashMap<String, Integer>(); // private TaskDao taskDao; // // static { // mapTypes.put(Task.NAME_EXTRACT_METRIC, Task.TYPE_EXTRACT_METRIC); // mapTypes.put(Task.NAME_MINE_DATABASE, Task.TYPE_MINE_DATABASE); // } // // public TaskService() { // taskDao = ObjectFactory.getObj(TaskDaoImpl.class); // } // // @Transacional // public void save(Task task) { // if (task.getId() == null) { // taskDao.inclui(task); // } else { // taskDao.altera(task); // } // } // // public List<Task> getAll() { // return taskDao.getAll(); // } // // public List<String> getTypeNames() { // return new ArrayList(mapTypes.keySet()); // } // // public Integer getTypeByName(String typeName) { // return mapTypes.get(typeName); // } // // public List<Task> getScheduledTasks() { // return taskDao.getScheduledTasks(); // } // // public boolean executeScheduledTasks() { // System.out.println(">>> executeScheduledTasks"); // List<Task> scheduledTasks = taskDao.getScheduledTasks(); // for (Task task : scheduledTasks) { // addTaskToRun(task); // } // return startTasks(); // } // // synchronized private static void addTaskToRun(Task Task) { // mapTasks.put(new ThreadTask(Task), Boolean.FALSE); // } // // synchronized private static boolean startTasks() { // boolean atLeastOneStarted = false; // System.out.println(">>> startTasks"); // for (ThreadTask threadTask : mapTasks.keySet()) { // //ainda nao está rodando // if (!mapTasks.get(threadTask)) { // mapTasks.put(threadTask, Boolean.TRUE); // threadTask.start(); // atLeastOneStarted = true; // System.out.println(">>> iniciada: " + threadTask.getName()); // } // } // return atLeastOneStarted; // } // // synchronized public void stopTasks() { // for (ThreadTask threadTask : mapTasks.keySet()) { // mapTasks.put(threadTask, Boolean.FALSE); // threadTask.suspend(); // } // } // // synchronized private void removeTask(Task task) { // for (ThreadTask threadTask : mapTasks.keySet()) { // if (threadTask.getTask().equals(task)) { // mapTasks.remove(threadTask); // } // } // } // // public void done(Task task) { // removeTask(task); // task.setStatus(Task.STATUS_DONE); // save(task); // } // // public void running(Task task) { // task.setStatus(Task.STATUS_RUNNING); // } // // public void problemExecution(Task task, ExecutionPlanException ex) { // removeTask(task); // task.setStartTime(null); // task.setStatus(Task.STATUS_CREATED); // } //} //