1
2
3
4
5
6 package fr.ifremer.quadrige3.core.dao.system.extraction;
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 import fr.ifremer.quadrige3.core.dao.PrincipalStore;
29 import fr.ifremer.quadrige3.core.dao.PropertySearch;
30 import fr.ifremer.quadrige3.core.dao.Search;
31 import fr.ifremer.quadrige3.core.dao.technical.hibernate.HibernateDaoSupport;
32 import java.security.Principal;
33 import java.util.Collection;
34 import java.util.Date;
35 import java.util.LinkedHashSet;
36 import java.util.List;
37 import java.util.Set;
38 import javax.annotation.Resource;
39 import org.andromda.spring.PaginationResult;
40 import org.apache.commons.collections.CollectionUtils;
41 import org.apache.commons.collections.Transformer;
42 import org.hibernate.Criteria;
43 import org.hibernate.HibernateException;
44 import org.hibernate.Query;
45 import org.hibernate.ScrollableResults;
46
47
48
49
50
51
52
53
54
55 public abstract class ExtractSelectedGeometryDaoBase
56 extends HibernateDaoSupport
57 implements ExtractSelectedGeometryDao
58 {
59
60
61
62 @Override
63 public Object get(final int transform, final Integer extractSelGeomGeometryId)
64 {
65 if (extractSelGeomGeometryId == null)
66 {
67 throw new IllegalArgumentException(
68 "ExtractSelectedGeometry.get - 'extractSelGeomGeometryId' can not be null");
69 }
70 final ExtractSelectedGeometry entity = get(ExtractSelectedGeometryImpl.class, extractSelGeomGeometryId);
71 return transformEntity(transform, entity);
72 }
73
74
75
76 @Override
77 public ExtractSelectedGeometry get(Integer extractSelGeomGeometryId)
78 {
79 return (ExtractSelectedGeometry)this.get(TRANSFORM_NONE, extractSelGeomGeometryId);
80 }
81
82
83
84
85 @Override
86 public Object load(final int transform, final Integer extractSelGeomGeometryId)
87 {
88 if (extractSelGeomGeometryId == null)
89 {
90 throw new IllegalArgumentException(
91 "ExtractSelectedGeometry.load - 'extractSelGeomGeometryId' can not be null");
92 }
93 final ExtractSelectedGeometry entity = get(ExtractSelectedGeometryImpl.class, extractSelGeomGeometryId);
94 return transformEntity(transform, entity);
95 }
96
97
98
99
100 @Override
101 public ExtractSelectedGeometry load(Integer extractSelGeomGeometryId)
102 {
103 return (ExtractSelectedGeometry)this.load(TRANSFORM_NONE, extractSelGeomGeometryId);
104 }
105
106
107
108
109 @Override
110 @SuppressWarnings({"unchecked"})
111 public Collection<ExtractSelectedGeometry> loadAll()
112 {
113 return (Collection<ExtractSelectedGeometry>) this.loadAll(ExtractSelectedGeometryDao.TRANSFORM_NONE);
114 }
115
116
117
118
119 @Override
120 public Collection<?> loadAll(final int transform)
121 {
122 return this.loadAll(transform, -1, -1);
123 }
124
125
126
127
128 @Override
129 public Collection<?> loadAll(final int pageNumber, final int pageSize)
130 {
131 return this.loadAll(ExtractSelectedGeometryDao.TRANSFORM_NONE, pageNumber, pageSize);
132 }
133
134
135
136
137 @Override
138 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize)
139 {
140 try
141 {
142 final Criteria criteria = this.getSession().createCriteria(ExtractSelectedGeometryImpl.class);
143 if (pageNumber > 0 && pageSize > 0)
144 {
145 criteria.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
146 criteria.setMaxResults(pageSize);
147 }
148 final Collection<?> results = criteria.list();
149 this.transformEntities(transform, results);
150 return results;
151 }
152 catch (HibernateException ex)
153 {
154 throw ex;
155 }
156 }
157
158
159
160
161
162
163
164 protected int calculateFirstResult(int pageNumber, int pageSize)
165 {
166 int firstResult = 0;
167 if (pageNumber > 0)
168 {
169 firstResult = (pageNumber - 1) * pageSize;
170 }
171 return firstResult;
172 }
173
174
175
176
177 @Override
178 public ExtractSelectedGeometry create(ExtractSelectedGeometry extractSelectedGeometry)
179 {
180 return (ExtractSelectedGeometry)this.create(ExtractSelectedGeometryDao.TRANSFORM_NONE, extractSelectedGeometry);
181 }
182
183
184
185
186 @Override
187 public Object create(final int transform, final ExtractSelectedGeometry extractSelectedGeometry)
188 {
189 if (extractSelectedGeometry == null)
190 {
191 throw new IllegalArgumentException(
192 "ExtractSelectedGeometry.create - 'extractSelectedGeometry' can not be null");
193 }
194 this.getSessionFactory().getCurrentSession().save(extractSelectedGeometry);
195 return this.transformEntity(transform, extractSelectedGeometry);
196 }
197
198
199
200
201 @Override
202 @SuppressWarnings({"unchecked"})
203 public Collection<ExtractSelectedGeometry> create(final Collection<ExtractSelectedGeometry> entities)
204 {
205 return (Collection<ExtractSelectedGeometry>) create(ExtractSelectedGeometryDao.TRANSFORM_NONE, entities);
206 }
207
208
209
210
211 @Override
212 public Collection<?> create(final int transform, final Collection<ExtractSelectedGeometry> entities)
213 {
214 if (entities == null)
215 {
216 throw new IllegalArgumentException(
217 "ExtractSelectedGeometry.create - 'entities' can not be null");
218 }
219 for (ExtractSelectedGeometry entity : entities)
220 {
221 create(transform, entity);
222 }
223 return entities;
224 }
225
226
227
228
229 @Override
230 public ExtractSelectedGeometry create(
231 String extractSelGeomSession,
232 Date extractSelGeomDt)
233 {
234 return (ExtractSelectedGeometry)this.create(ExtractSelectedGeometryDao.TRANSFORM_NONE, extractSelGeomSession, extractSelGeomDt);
235 }
236
237
238
239
240 @Override
241 public Object create(
242 final int transform,
243 String extractSelGeomSession,
244 Date extractSelGeomDt)
245 {
246 ExtractSelectedGeometry entity = new ExtractSelectedGeometryImpl();
247 entity.setExtractSelGeomSession(extractSelGeomSession);
248 entity.setExtractSelGeomDt(extractSelGeomDt);
249 return this.create(transform, entity);
250 }
251
252
253
254
255 @Override
256 public void update(ExtractSelectedGeometry extractSelectedGeometry)
257 {
258 if (extractSelectedGeometry == null)
259 {
260 throw new IllegalArgumentException(
261 "ExtractSelectedGeometry.update - 'extractSelectedGeometry' can not be null");
262 }
263 this.getSessionFactory().getCurrentSession().update(extractSelectedGeometry);
264 }
265
266
267
268
269 @Override
270 public void update(final Collection<ExtractSelectedGeometry> entities)
271 {
272 if (entities == null)
273 {
274 throw new IllegalArgumentException(
275 "ExtractSelectedGeometry.update - 'entities' can not be null");
276 }
277 for (ExtractSelectedGeometry entity : entities)
278 {
279 update(entity);
280 }
281 }
282
283
284
285
286 @Override
287 public void remove(ExtractSelectedGeometry extractSelectedGeometry)
288 {
289 if (extractSelectedGeometry == null)
290 {
291 throw new IllegalArgumentException(
292 "ExtractSelectedGeometry.remove - 'extractSelectedGeometry' can not be null");
293 }
294 this.getSessionFactory().getCurrentSession().delete(extractSelectedGeometry);
295 }
296
297
298
299
300 @Override
301 public void remove(Integer extractSelGeomGeometryId)
302 {
303 if (extractSelGeomGeometryId == null)
304 {
305 throw new IllegalArgumentException(
306 "ExtractSelectedGeometry.remove - 'extractSelGeomGeometryId' can not be null");
307 }
308 ExtractSelectedGeometry entity = this.get(extractSelGeomGeometryId);
309 if (entity != null)
310 {
311 this.remove(entity);
312 }
313 }
314
315
316
317
318 @Override
319 public void remove(Collection<ExtractSelectedGeometry> entities)
320 {
321 if (entities == null)
322 {
323 throw new IllegalArgumentException(
324 "ExtractSelectedGeometry.remove - 'entities' can not be null");
325 }
326 deleteAll(entities);
327 }
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342 public Object transformEntity(final int transform, final ExtractSelectedGeometry entity)
343 {
344 Object target = null;
345 if (entity != null)
346 {
347 switch (transform)
348 {
349 case ExtractSelectedGeometryDao.TRANSFORM_NONE :
350 default:
351 target = entity;
352 }
353 }
354 return target;
355 }
356
357
358
359
360 @Override
361 public void transformEntities(final int transform, final Collection<?> entities)
362 {
363 switch (transform)
364 {
365 case ExtractSelectedGeometryDao.TRANSFORM_NONE :
366 default:
367
368 }
369 }
370
371
372
373
374 public void toEntities(final Collection<?> results)
375 {
376 if (results != null)
377 {
378 CollectionUtils.transform(results, this.ENTITYTRANSFORMER);
379 }
380 }
381
382
383
384
385
386
387 private Transformer ENTITYTRANSFORMER =
388 new Transformer()
389 {
390 public Object transform(Object input)
391 {
392 Object result = null;
393 if (input instanceof Object[])
394 {
395 result = toEntity((Object[])input);
396 }
397 else if (input instanceof ExtractSelectedGeometry)
398 {
399 result = input;
400 }
401 return result;
402 }
403 };
404
405
406
407
408
409 protected ExtractSelectedGeometry toEntity(Object[] row)
410 {
411 ExtractSelectedGeometry target = null;
412 if (row != null)
413 {
414 final int numberOfObjects = row.length;
415 for (int ctr = 0; ctr < numberOfObjects; ctr++)
416 {
417 final Object object = row[ctr];
418 if (object instanceof ExtractSelectedGeometry)
419 {
420 target = (ExtractSelectedGeometry)object;
421 break;
422 }
423 }
424 }
425 return target;
426 }
427
428
429
430
431
432
433
434 protected Principal getPrincipal()
435 {
436 return PrincipalStore.get();
437 }
438
439
440
441
442 @Override
443 @SuppressWarnings({ "unchecked" })
444 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search)
445 {
446 try
447 {
448 search.setPageNumber(pageNumber);
449 search.setPageSize(pageSize);
450 final PropertySearch propertySearch = new PropertySearch(
451 this.getSession(), ExtractSelectedGeometryImpl.class, search);
452 final List results = propertySearch.executeAsList();
453 this.transformEntities(transform, results);
454 return new PaginationResult(results.toArray(new Object[results.size()]), propertySearch.getTotalCount());
455 }
456 catch (HibernateException ex)
457 {
458 throw ex;
459 }
460 }
461
462
463
464
465 @Override
466 public PaginationResult search(final int pageNumber, final int pageSize, final Search search)
467 {
468 return this.search(ExtractSelectedGeometryDao.TRANSFORM_NONE, pageNumber, pageSize, search);
469 }
470
471
472
473
474 @Override
475 public Set<?> search(final int transform, final Search search)
476 {
477 try
478 {
479 final PropertySearch propertySearch = new PropertySearch(
480 this.getSession(), ExtractSelectedGeometryImpl.class, search);
481 final Set<?> results = propertySearch.executeAsSet();
482 this.transformEntities(transform, results);
483 return results;
484 }
485 catch (HibernateException ex)
486 {
487 throw ex;
488 }
489 }
490
491
492
493
494 @Override
495 @SuppressWarnings("unchecked")
496 public Set<ExtractSelectedGeometry> search(final Search search)
497 {
498 return (Set<ExtractSelectedGeometry>) this.search(ExtractSelectedGeometryDao.TRANSFORM_NONE, search);
499 }
500
501
502
503
504
505
506
507
508
509 @SuppressWarnings({ "unchecked" })
510 protected PaginationResult getPaginationResult(
511 final Query queryObject,
512 final int transform, int pageNumber, int pageSize)
513 {
514 try
515 {
516 final ScrollableResults scrollableResults = queryObject.scroll();
517 scrollableResults.last();
518 int totalCount = scrollableResults.getRowNumber();
519 totalCount = totalCount >= 0 ? totalCount + 1 : 0;
520 if (pageNumber > 0 && pageSize > 0)
521 {
522 queryObject.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
523 queryObject.setMaxResults(pageSize);
524 }
525
526 Set results = new LinkedHashSet(queryObject.list());
527 transformEntities(transform, results);
528 return new PaginationResult(results.toArray(new Object[results.size()]), totalCount);
529 }
530 catch (HibernateException ex)
531 {
532 throw ex;
533 }
534 }
535
536
537 }