/* * * 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.Set; import modelo.CadPlan; import modelo.Parametros; import modelo.PlanoModelo; import service.ParametrosAppService; import service.PlanoModeloAppService; import service.CadPlanAppService; import service.PMPAppService; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import DAO.exception.ObjetoNaoEncontradoException; import service.controleTransacao.FabricaDeAppService; import service.exception.AplicacaoException; import util.JPAUtil; /** * * 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: * Seleciona o cadPlan de c�digo "1" como sendo plano corrente. * Faz com que todos os modelos fiquem como planejados e implementa o plano. * * @author bruno.oliveira e felipe.arruda */ public class CargaEstudoImplementaPlano extends CargaBase{ private static ParametrosAppService parametrosService; private static PlanoModeloAppService planoModeloService; private static CadPlanAppService cadPlanService; private static PMPAppService pmpService; private CadPlan cadPlanCorrente; public CargaEstudoImplementaPlano(){ try { parametrosService = FabricaDeAppService.getAppService(ParametrosAppService.class); planoModeloService = FabricaDeAppService.getAppService(PlanoModeloAppService.class); cadPlanService = FabricaDeAppService.getAppService(CadPlanAppService.class); pmpService = FabricaDeAppService.getAppService(PMPAppService.class); } catch (Exception e) { e.printStackTrace(); } try { cadPlanCorrente = cadPlanService.recuperaCadPlanComPlanosModelo("1"); } catch (ObjetoNaoEncontradoException e) { e.printStackTrace(); } } /** * Planeja todos os modelos, depois implementa o plano * */ @Override public boolean executar() throws AplicacaoException { this.planejarTodosModelos(); this.implementaPlano(); return true; } /** * Planeja todos os modelos do cadPlanCorrente */ public void planejarTodosModelos(){ Set<PlanoModelo> planosModelo = cadPlanCorrente.getPlanosModelo(); for (PlanoModelo planoModelo : planosModelo) { if (planoModelo.isModeloPlanejado()){ planoModelo.setModeloPlanejado(false); } else { planoModelo.setModeloPlanejado(true); } planoModeloService.altera(planoModelo); } } /** * Implementa o cadPlanCorrente */ public void implementaPlano() throws AplicacaoException{ try { cadPlanCorrente = cadPlanService.recuperaCadPlanComPlanosModelo("1"); pmpService.implementaPlanoMestre(cadPlanCorrente); } catch (ObjetoNaoEncontradoException e){ throw new AplicacaoException(e); } } }