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