1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package ecar.dao;
17
18 import java.util.ArrayList;
19 import java.util.Collections;
20 import java.util.Comparator;
21 import java.util.Iterator;
22 import java.util.List;
23
24 import javax.servlet.http.HttpServletRequest;
25
26 import org.hibernate.HibernateException;
27
28 import comum.database.Dao;
29
30 import ecar.exception.ECARException;
31 import ecar.pojo.LocalGrupoLgp;
32
33
34
35
36 public class LocalGrupoDao extends Dao {
37
38
39
40 public LocalGrupoDao(HttpServletRequest request) {
41 super();
42 this.request = request;
43 }
44
45
46
47
48
49
50 public List getFilhosById(LocalGrupoLgp localGrupo) {
51 List filhos = new ArrayList();
52 if (localGrupo.getLocalGrupoHierarquiaLgphsByCodLgpPai() != null) {
53 Iterator it = localGrupo.getLocalGrupoHierarquiaLgphsByCodLgpPai().iterator();
54 while (it.hasNext()) {
55 LocalGrupoLgp localGrupoFilho = (LocalGrupoLgp) it.next();
56 filhos.add(localGrupoFilho.getCodLgp());
57 }
58 }
59 return filhos;
60 }
61
62
63
64
65
66
67
68
69
70 public List getAscendentes(LocalGrupoLgp localGrupo) {
71 List grupos = new ArrayList();
72 if (localGrupo.getLocalGrupoHierarquiaLgphsByCodLgp() != null) {
73
74 Iterator it = localGrupo.getLocalGrupoHierarquiaLgphsByCodLgp().iterator();
75 while (it.hasNext()) {
76 LocalGrupoLgp localGrupoLgp = (LocalGrupoLgp) it.next();
77 if (!grupos.contains(localGrupoLgp)) {
78 grupos.add(localGrupoLgp);
79 grupos.addAll(getAscendentes(localGrupoLgp));
80 }
81 }
82 }
83 return grupos;
84 }
85
86
87
88
89
90
91
92 public void excluir(LocalGrupoLgp localGrupo) throws ECARException {
93 try {
94 boolean excluir = true;
95 if (contar(localGrupo.getLocalItemLits()) > 0) {
96 excluir = false;
97 throw new ECARException("localGrupo.exclusao.erro.localItemLits");
98 }
99 if (contar(localGrupo.getLocalGrupoHierarquiaLgphsByCodLgp()) > 0) {
100 excluir = false;
101 throw new ECARException("localGrupo.exclusao.erro.localGrupoHierarquiaLgphsByCodLgp");
102 }
103 if (contar(localGrupo.getLocalGrupoHierarquiaLgphsByCodLgpPai()) > 0) {
104 excluir = false;
105 throw new ECARException("localGrupo.exclusao.erro.localGrupoHierarquiaLgphsByCodLgpPai");
106 }
107
108 if (excluir)
109 super.excluir(localGrupo);
110 } catch (ECARException e) {
111 this.logger.error(e);
112 throw e;
113 }
114 }
115
116
117
118
119
120
121 public void salvar(LocalGrupoLgp grupo) throws ECARException {
122 if (pesquisarDuplos(grupo, new String[] { "identificacaoLgp" }, "codLgp").size() > 0)
123 throw new ECARException("localGrupo.validacao.registroDuplicado");
124 super.salvar(grupo);
125 }
126
127
128
129
130
131
132 public void alterar(LocalGrupoLgp grupo) throws ECARException {
133 if (pesquisarDuplos(grupo, new String[] { "identificacaoLgp" }, "codLgp").size() > 0)
134 throw new ECARException("localGrupo.validacao.registroDuplicado");
135 super.alterar(grupo);
136 }
137
138
139
140
141
142
143
144 public List getGruposPais(LocalGrupoLgp grupo) throws HibernateException {
145 List grupos = new ArrayList();
146
147 if (grupo.getLocalGrupoHierarquiaLgphsByCodLgp() != null) {
148 grupos = new ArrayList(grupo.getLocalGrupoHierarquiaLgphsByCodLgp());
149 Iterator it = grupos.iterator();
150 while (it.hasNext()) {
151 LocalGrupoLgp lgp = (LocalGrupoLgp) it.next();
152 if (!"S".equals(lgp.getIndAtivoLgp())) {
153 it.remove();
154 }
155 }
156 Collections.sort(grupos, new Comparator() {
157 public int compare(Object o1, Object o2) {
158 return ((LocalGrupoLgp) o1).getIdentificacaoLgp().compareToIgnoreCase(((LocalGrupoLgp) o2).getIdentificacaoLgp());
159 }
160 });
161 }
162
163 return grupos;
164 }
165
166
167
168
169
170
171
172 public List getGruposFilhos(LocalGrupoLgp grupo) throws HibernateException {
173 List grupos = new ArrayList();
174
175 if (grupo.getLocalGrupoHierarquiaLgphsByCodLgpPai() != null) {
176 grupos = new ArrayList(grupo.getLocalGrupoHierarquiaLgphsByCodLgpPai());
177 Iterator it = grupos.iterator();
178 while (it.hasNext()) {
179 LocalGrupoLgp lgp = (LocalGrupoLgp) it.next();
180 if (!"S".equals(lgp.getIndAtivoLgp())) {
181 it.remove();
182 }
183 }
184 Collections.sort(grupos, new Comparator() {
185 public int compare(Object o1, Object o2) {
186 return ((LocalGrupoLgp) o1).getIdentificacaoLgp().compareToIgnoreCase(((LocalGrupoLgp) o2).getIdentificacaoLgp());
187 }
188 });
189 }
190
191 return grupos;
192 }
193
194 }