/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package carga;
import java.util.List;
import modelo.CadPlan;
import modelo.ModelagemFuzzy;
import modelo.Usuario;
import service.CadPlanAppService;
import service.UsuarioAppService;
import service.controleTransacao.FabricaDeAppService;
import service.exception.AplicacaoException;
import DAO.ModelagemFuzzyDAO;
import DAO.Impl.ModelagemFuzzyDAOImpl;
import DAO.controle.FabricaDeDao;
import DAO.exception.ObjetoNaoEncontradoException;
/**
*
* Sobre a Carga:
* � uma Carga do sistema, portanto deve herdar de CargaBase e
* implementar o m�todo executar().
* Nesse m�todo executar � que � chamado os outros m�todos que s�o
* as et�pas dessa carga.
* Portanto se � necessario rodar um m�todo depois do outro, eles devem ser chamados
* na ordem correta. Ex:
* incluiHP() vem antes de inicializaHP(), portanto no m�todo executar() eles devem ser chamados nessa ordem.
*
* Terminado de executar todas as etapas � preciso retornar true.
* Se houver algum problema(exce��o) na execu��o de um das etapas, essa exce��o deve ser lancada
*
* Essa Carga:
* Inclui novo plano que utiliza modelagem fuzzy.
* Vai ser utilizado como modelagem a modelagem fuzzy
* incluida anteriormente:"producao.xfl"
*
* @author felipe.arruda
*/
public class CargaEstudoIncluiPlanoComFuzzy extends CargaBase{
private static CadPlanAppService cadPlanService;
private static ModelagemFuzzyDAO modelagemFuzzyDAO;
private static UsuarioAppService usuarioService;
public CargaEstudoIncluiPlanoComFuzzy(){
try {
cadPlanService = FabricaDeAppService.getAppService(CadPlanAppService.class);
modelagemFuzzyDAO = FabricaDeDao.getDao(ModelagemFuzzyDAOImpl.class);
usuarioService = FabricaDeAppService.getAppService(UsuarioAppService.class);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Inclui novo plano para o novo hp
* para que represente os dados originais defasados.
*/
@Override
public boolean executar() throws AplicacaoException {
this.incluiPlanoFuzzy();
return true;
}
/**
* Inclui novo plano para o novo hp usando modelagem fuzzy
*
* @throws AplicacaoException
*
*/
public void incluiPlanoFuzzy() throws AplicacaoException{
ModelagemFuzzy modelagem;
try {
modelagem = modelagemFuzzyDAO.recuperaModelagemFuzzyPeloNome("producao");
} catch (ObjetoNaoEncontradoException e) {
throw new AplicacaoException(e);
}
CargaUsuario cargaUsuario = new CargaUsuario();
List<Usuario> usuarios = cargaUsuario.recuperaUsuariosDeArquivoConfigJson();
Usuario usuarioAdmin = usuarios.get(0);
CadPlan cadPlanFuzzy = new CadPlan();
cadPlanFuzzy.setCodPlan("2");
cadPlanFuzzy.setDescrPlan("inclui fuzzy producao.xfl defasado");
cadPlanFuzzy.setUsuario(usuarioService.recuperaPorLoginESenha(usuarioAdmin.getLogin(),usuarioAdmin.getSenha()));
cadPlanFuzzy.setModelagemFuzzy(modelagem);
cadPlanService.incluiPMPFuzzy(cadPlanFuzzy);
}
}