package gcom.tarefa;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ServiceLocator;
import gcom.util.ServiceLocatorException;
import gcom.util.SistemaException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* Classe que representa uma tarefa batch no sistema
*
* @author Rodrigo Silveira
* @date 20/07/2006
*/
public abstract class TarefaBatch extends Tarefa {
/**
*
*/
// private static final long serialVersionUID = 1L;
protected Collection unidadesJaExecutadas = new ArrayList();
public TarefaBatch(Usuario usuario, int idFuncionalidadeIniciada) {
super(usuario, idFuncionalidadeIniciada);
}
/**
* Pesquisa no sistema para descobrir todas as unidades de processamento
* referentes � tarefa
*
* @author Rodrigo Silveira
* @date 20/07/2006
*
* @return cole��o com todas as unidades de processamento para o projeto
*/
protected abstract Collection<Object> pesquisarTodasUnidadeProcessamentoBatch();
/**
* Pesquisa no sistema para descobrir quais unidades de processamento restam
* processar caso a tarefa seja reiniciada
*
* @author Rodrigo Silveira
* @date 20/07/2006
*
* @return cole��o com todas as unidades de processamento para o projeto
*/
protected abstract Collection<Object> pesquisarTodasUnidadeProcessamentoReinicioBatch();
protected void enviarMensagemControladorBatch(String queueMDB,
Object[] parametros) {
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
locator.enviarMensagemJms(queueMDB, parametros);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
public final void execute(JobExecutionContext arg0)
throws JobExecutionException {
this.setIdFuncionalidadeIniciada((Integer) arg0.getJobDetail()
.getJobDataMap().get("idFuncionalidadeIniciada"));
this.setUsuario((Usuario) arg0.getJobDetail().getJobDataMap().get(
"usuario"));
this.setParametroTarefa((Set) arg0.getJobDetail().getJobDataMap().get(
"parametroTarefa"));
this.executar();
}
public Collection getUnidadesJaExecutadas() {
return unidadesJaExecutadas;
}
public void setUnidadesJaExecutadas(Collection unidadesJaExecutadas) {
this.unidadesJaExecutadas = unidadesJaExecutadas;
}
}