View Javadoc

1   /*
2    * Criado em 21/12/2004
3    */
4   package ecar.dao;
5   
6   import java.util.ArrayList;
7   import java.util.Iterator;
8   
9   import javax.servlet.http.HttpServletRequest;
10  
11  import org.hibernate.HibernateException;
12  import org.hibernate.Transaction;
13  
14  import comum.database.Dao;
15  import comum.util.Data;
16  import comum.util.Pagina;
17  import comum.util.Util;
18  
19  import ecar.exception.ECARException;
20  import ecar.pojo.ExercicioExe;
21  import ecar.pojo.ItemEstrtIndResulIettr;
22  import ecar.pojo.ItemEstrutFisicoIettf;
23  import ecar.pojo.ItemEstrutFisicoIettfPK;
24  
25  /**
26   * @author evandro
27   */
28  public class ItemEstrutFisicoDao extends Dao {
29    /**
30     * Construtor. Chama o Session factory do Hibernate
31     */
32    public ItemEstrutFisicoDao(HttpServletRequest request) {
33      super();
34      this.request = request;
35    }
36  
37    /**
38     * Cria um objeto itemEstrutFisico a partir de parâmetros passados no objeto
39     * request
40     * @author n/c
41     * @param request
42     * @param itemEstrutFisico
43     * @throws ECARException
44     */
45    public void setItemEstrutFisico(HttpServletRequest request, ItemEstrutFisicoIettf itemEstrutFisico) throws ECARException {
46      itemEstrutFisico.setItemEstrtIndResulIettr((ItemEstrtIndResulIettr) this.buscar(ItemEstrtIndResulIettr.class, Long.valueOf(Pagina.getParamStr(request, "codIettir"))));
47      itemEstrutFisico.setExercicioExe((ExercicioExe) this.buscar(ExercicioExe.class, Long.valueOf(Pagina.getParamStr(request, "codExe"))));
48      itemEstrutFisico.setQtdPrevistaIettf(Double.valueOf(Util.formataNumero(Pagina.getParamStr(request, "qtdPrevistaIettf"))));
49      itemEstrutFisico.setIndAtivoIettf(Pagina.getParamStr(request, "indAtivoIettf"));
50    }
51  
52    /**
53     * Recebe o código de itemIndResultado e um array contendo códigos de
54     * exercicio e exclui todos os registros que relacionam
55     * @author n/c
56     * @param codigosParaExcluir
57     * @param codItemIndResultado
58     * @throws ECARException
59     */
60    public void excluir(String[] codigosParaExcluir, Long codItemIndResultado) throws ECARException {
61      Transaction tx = null;
62  
63      try {
64        ArrayList objetos = new ArrayList();
65  
66        super.inicializarLogBean();
67  
68        tx = session.beginTransaction();
69  
70        for (int i = 0; i < codigosParaExcluir.length; i++) {
71          ItemEstrutFisicoIettf itemEstrutFisico = (ItemEstrutFisicoIettf) buscar(codItemIndResultado, Long.valueOf(codigosParaExcluir[i]));
72          session.delete(itemEstrutFisico);
73          objetos.add(itemEstrutFisico);
74        }
75  
76        tx.commit();
77  
78        if (super.logBean != null) {
79          super.logBean.setCodigoTransacao(Data.getHoraAtual(false));
80          super.logBean.setOperacao("EXC");
81          Iterator itObj = objetos.iterator();
82  
83          while (itObj.hasNext()) {
84            super.logBean.setObj(itObj.next());
85            super.loggerAuditoria.info(logBean.toString());
86          }
87        }
88      } catch (HibernateException e) {
89        if (tx != null)
90          try {
91            tx.rollback();
92          } catch (HibernateException r) {
93            this.logger.error(r);
94            throw new ECARException("erro.hibernateException");
95          }
96        this.logger.error(e);
97        throw new ECARException("erro.hibernateException");
98      }
99    }
100 
101   /**
102    * Método utilizado para setar os valores da PK da classe
103    * @author n/c
104    * @param itemEstrutFisico
105    */
106   public void setPK(ItemEstrutFisicoIettf itemEstrutFisico) {
107     ItemEstrutFisicoIettfPK chave = new ItemEstrutFisicoIettfPK();
108 
109     chave.setCodIettir(itemEstrutFisico.getItemEstrtIndResulIettr().getCodIettir());
110     chave.setCodExe(itemEstrutFisico.getExercicioExe().getCodExe());
111 
112     itemEstrutFisico.setComp_id(chave);
113   }
114 
115   /**
116    * Grava uma relação entre itemIndResultado e Exercicio
117    * @author n/c
118    * @param itemEstrutFisico
119    * @throws ECARException
120    */
121   public void salvar(ItemEstrutFisicoIettf itemEstrutFisico) throws ECARException {
122     setPK(itemEstrutFisico);
123     try {
124       if (buscar(ItemEstrutFisicoIettf.class, itemEstrutFisico.getComp_id()) != null)
125         throw new ECARException("itemEstrutura.quantPrevista.inclusao.jaExiste");
126     } catch (ECARException e) {
127       if (e.getMessageKey().equalsIgnoreCase("erro.objectNotFound")) {
128         super.salvar(itemEstrutFisico);
129       }
130       else
131         this.logger.error(e);
132       /* joga para frente a inclusao.jaExiste */
133       throw e;
134     }
135   }
136 
137   /**
138    * Retorna um objeto ItemEstrutFisico a partir dos códigos
139    * @author n/c
140    * @param codItemIndResultado
141    * @param codExercicio
142    * @return
143    * @throws ECARException
144    */
145   public ItemEstrutFisicoIettf buscar(Long codIettir, Long codExe) throws ECARException {
146     ItemEstrutFisicoIettfPK chave = new ItemEstrutFisicoIettfPK();
147 
148     chave.setCodIettir(codIettir);
149     chave.setCodExe(codExe);
150 
151     return (ItemEstrutFisicoIettf) super.buscar(ItemEstrutFisicoIettf.class, chave);
152   }
153 
154 }