package com.fitbank.uci.calendar; import com.fitbank.uci.client.ToDo; import com.fitbank.uci.common.UciThread; import com.fitbank.uci.server.manager.DeviceEventTypes; /** * Clase encargada de la ejecución de Tareas calendarizadas en Hilos independientes. * @author Fit-Bank * */ public class TimeRunner extends UciThread { /** * Tarea Calendarizada por Ejecutar. */ private UCITimeTask task; /** * * Crea una nueva instancia de Runner * @param pTask Referencia a la tarea a ejecutar. */ public TimeRunner(UCITimeTask pTask) { this.task = pTask; this.start(); } @Override public void run() { try { ToDo td = (ToDo) task.getTodoClass().newInstance(); String result = td.execute(task.getTaskParameters()); if (result != null) { task.setLastExecution(result); task.addMessage("Finaliza la Ejecucion de " + this.task.getTaskDescription() + " " + result, DeviceEventTypes.DISCONNECT); } } catch (Exception e) { try { task.addMessage("La tarea " + this.task.getTaskDescription() + ":" + e.getMessage(), DeviceEventTypes.ERROR); } catch (Exception e1) { e1.printStackTrace(); } } } }