/*
*
* 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 service;
import java.util.List;
import modelo.HP;
import modelo.HPVig;
import modelo.PerioPAPVig;
import modelo.PerioPMVig;
import service.anotacao.Transacional;
import service.exception.AplicacaoException;
import DAO.HPDAO;
import DAO.HPVigDAO;
import DAO.PerioPAPVigDAO;
import DAO.PerioPMVigDAO;
import DAO.Impl.HPDAOImpl;
import DAO.Impl.HPVigDAOImpl;
import DAO.Impl.PerioPAPVigDAOImpl;
import DAO.Impl.PerioPMVigDAOImpl;
import DAO.controle.FabricaDeDao;
import DAO.exception.ObjetoNaoEncontradoException;
public class HPVigAppService {
// DAOs
private static HPVigDAO hpVigDAO;
private static HPDAO hpDAO;
private static PerioPMVigDAO perioPMVigDAO;
private static PerioPAPVigDAO perioPAPVigDAO;
@SuppressWarnings("unchecked")
public HPVigAppService() {
try {
// DAO
hpVigDAO = FabricaDeDao.getDao(HPVigDAOImpl.class);
hpDAO = FabricaDeDao.getDao(HPDAOImpl.class);
perioPMVigDAO = FabricaDeDao.getDao(PerioPMVigDAOImpl.class);
perioPAPVigDAO = FabricaDeDao.getDao(PerioPAPVigDAOImpl.class);
} catch (Exception e) {
e.printStackTrace();
// O comando a seguir s� ser� usado caso haja a cria��o de um service.
// Exemplo:
// Um Service A tem dentro de si a chamada de um Service B, s� que o Service B tamb�m tem
// uma chamada para o Service A, logo um service chamaria o outro sem parar causando assim um loop infinito.
// Contudo, em termos de uso do sistemas esse erro n�o ocorreria de forma clara,
// pois a View seria carregada sem dados.
// Para evitar que esse tipo de erro gere confus�es - como o usu�rio pensar que o banco foi perdido, por exemplo -
// utilizamos o comando System.exit(1) que interrompe a aplica��o, deixando explicita a ocorr�ncia do erro.
//System.exit(1);
}
}
// Verificar se tem que mudar o valor de parametros.inicPlanejamento
@Transacional
public void inclui(HPVig hpVig) throws AplicacaoException {
//
// Parametros parametro =
// parametrosDAO.recuperaListaDeParametros().get(0);
// parametro.setInicPlanejamento(false);
// parametrosDAO.altera(parametro);
hpVigDAO.inclui(hpVig);
}
@Transacional
public void incluiCopiandoTodosHPs() throws AplicacaoException{
List<HP> listaDeHPs = hpDAO.recuperaListaDeHP();
for(HP hp : listaDeHPs){
this.incluiCopiandoHP(hp);
}
}
@Transacional
public void incluiCopiandoHP(HP hp) throws AplicacaoException {
HPVig hpVig = new HPVig();
PerioPMVig perioPMVig = new PerioPMVig();
PerioPAPVig perioPAPVig = new PerioPAPVig();
try {
perioPMVig = perioPMVigDAO.recuperaPerioPMVigPorPeriodoPM(hp
.getPerioPMInicPMP().getPeriodoPM());
hpVig.setPerioPMInicPMP(perioPMVig);
perioPMVig = perioPMVigDAO.recuperaPerioPMVigPorPeriodoPM(hp
.getPerioPMFinalPMP().getPeriodoPM());
hpVig.setPerioPMFinalPMP(perioPMVig);
perioPMVig = perioPMVigDAO.recuperaPerioPMVigPorPeriodoPM(hp
.getPerioPMInicDemMod().getPeriodoPM());
hpVig.setPerioPMInicDemMod(perioPMVig);
perioPMVig = perioPMVigDAO.recuperaPerioPMVigPorPeriodoPM(hp
.getPerioPMFinalDemMod().getPeriodoPM());
hpVig.setPerioPMFinalDemMod(perioPMVig);
perioPAPVig = perioPAPVigDAO.recuperaPerioPAPVigPorPeriodoPAP(hp
.getPerioPAPInicPAP().getPeriodoPAP());
hpVig.setPerioPAPInicPAP(perioPAPVig);
perioPAPVig = perioPAPVigDAO.recuperaPerioPAPVigPorPeriodoPAP(hp
.getPerioPAPFinalPAP().getPeriodoPAP());
hpVig.setPerioPAPFinalPAP(perioPAPVig);
perioPAPVig = perioPAPVigDAO.recuperaPerioPAPVigPorPeriodoPAP(hp
.getPerioPAPInicDemFam().getPeriodoPAP());
hpVig.setPerioPAPInicDemFam(perioPAPVig);
perioPAPVig = perioPAPVigDAO.recuperaPerioPAPVigPorPeriodoPAP(hp
.getPerioPAPFinalDemFam().getPeriodoPAP());
hpVig.setPerioPAPFinalDemFam(perioPAPVig);
} catch (Exception e) {
}
this.inclui(hpVig);
return;
}
@Transacional
public void exclui(HPVig hpVig) throws AplicacaoException {
HPVig hpVigBD = null;
try {
hpVigBD = hpVigDAO.getPorIdComLock(hpVig.getId());
} catch (ObjetoNaoEncontradoException e) {
}
hpVigDAO.exclui(hpVigBD);
}
@Transacional
public void apagaTodos() throws AplicacaoException{
List<HPVig> listaDeHPVig = hpVigDAO.recuperaListaDeHPVig();
for(HPVig hpVig : listaDeHPVig){
this.exclui(hpVig);
}
}
public List<HPVig> recuperaListaDeHPVig() {
return hpVigDAO.recuperaListaDeHPVig();
}
}