View Javadoc

1   package ecar.dao;
2   
3   import java.util.ArrayList;
4   import java.util.Iterator;
5   
6   import javax.servlet.http.HttpServletRequest;
7   
8   import org.hibernate.HibernateException;
9   import org.hibernate.Transaction;
10  
11  import comum.database.Dao;
12  import comum.util.Data;
13  import comum.util.Pagina;
14  
15  import ecar.exception.ECARException;
16  import ecar.pojo.AgendaAge;
17  import ecar.pojo.AgendaEntidadesAgeent;
18  import ecar.pojo.AgendaEntidadesAgeentPK;
19  import ecar.pojo.EntidadeEnt;
20  
21  /**
22   * Classe de manipulação de objetos da classe AgendaEntidadesAgeent.
23   */
24  public class AgendaEntidadesAgeentDAO extends Dao {
25  
26    public AgendaEntidadesAgeentDAO(HttpServletRequest request) {
27      super();
28      this.request = request;
29    }
30  
31    public void setAgendaEntidadesAgeentDAO(HttpServletRequest request, AgendaEntidadesAgeent agendaEntidades) throws ECARException {
32      agendaEntidades.setAgendaAge((AgendaAge) this.buscar(AgendaAge.class, Long.valueOf(Pagina.getParamStr(request, "codAge"))));
33      agendaEntidades.setEntidadeEnt((EntidadeEnt) new EntidadeDao(request).buscar(EntidadeEnt.class, Long.valueOf(Pagina.getParamStr(request, "codEnt"))));
34    }
35  
36    /**
37     * Método utilizado para setar os valores da PK da classe
38     * @param agendaEntidade
39     */
40    public void setPK(AgendaEntidadesAgeent agendaEntidade) {
41      AgendaEntidadesAgeentPK chave = new AgendaEntidadesAgeentPK();
42  
43      chave.setCodAge((Long.valueOf(agendaEntidade.getAgendaAge().getCodAge().longValue())));
44      chave.setCodEnt((Long.valueOf(agendaEntidade.getEntidadeEnt().getCodEnt().longValue())));
45  
46      agendaEntidade.setComp_id(chave);
47    }
48  
49    /**
50     * Grava uma relação entre Agenda e Entidade
51     * @param agendaEntidade
52     * @throws ECARException
53     */
54    public void salvar(AgendaEntidadesAgeent agendaEntidade) throws ECARException {
55      setPK(agendaEntidade);
56      try {
57        if (buscar(AgendaEntidadesAgeent.class, agendaEntidade.getComp_id()) != null)
58          throw new ECARException("agenda.entidade.inclusao.jaExiste");
59      } catch (ECARException e) {
60        this.logger.error(e);
61        if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
62          super.salvar(agendaEntidade);
63        }
64        else
65          /* joga para frente a inclusao.jaExiste */
66          throw e;
67      }
68    }
69  
70    /**
71     * Recebe o código da agenda e um array contendo códigos de entidades e exclui
72     * todos os registros que relacionam esta agenda com cada um dos códigos das
73     * enntidades
74     * @param codigosParaExcluir
75     * @param codAgenda
76     * @throws ECARException
77     */
78    public void excluir(String[] codigosParaExcluir, Long codAgenda) throws ECARException {
79      Transaction tx = null;
80  
81      try {
82        ArrayList objetos = new ArrayList();
83  
84        super.inicializarLogBean();
85  
86        tx = session.beginTransaction();
87  
88        for (int i = 0; i < codigosParaExcluir.length; i++) {
89          AgendaEntidadesAgeentPK chave = new AgendaEntidadesAgeentPK(Long.valueOf(codigosParaExcluir[i]), codAgenda);
90          AgendaEntidadesAgeent agendaEntidade = (AgendaEntidadesAgeent) buscar(AgendaEntidadesAgeent.class, chave);
91  
92          session.delete(agendaEntidade);
93          objetos.add(agendaEntidade);
94        }
95  
96        tx.commit();
97  
98        if (super.logBean != null) {
99          super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
100         super.logBean.setOperacao("EXC");
101         Iterator itObj = objetos.iterator();
102 
103         while (itObj.hasNext()) {
104           super.logBean.setObj(itObj.next());
105           super.loggerAuditoria.info(logBean.toString());
106         }
107       }
108     } catch (HibernateException e) {
109       if (tx != null)
110         try {
111           tx.rollback();
112         } catch (HibernateException r) {
113           this.logger.error(r);
114           throw new ECARException("erro.hibernateException");
115         }
116       this.logger.error(e);
117       throw new ECARException("erro.hibernateException");
118     }
119   }
120 }