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