1
2
3
4
5
6 package fr.ifremer.quadrige2.core.dao.administration.program;
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.administration.user.Department;
33 import fr.ifremer.quadrige2.core.dao.technical.hibernate.HibernateDaoSupport;
34 import fr.ifremer.quadrige2.core.vo.administration.program.ProgDepProgPrivVO;
35 import java.security.Principal;
36 import java.sql.Timestamp;
37 import java.util.ArrayList;
38 import java.util.Collection;
39 import java.util.Iterator;
40 import java.util.LinkedHashSet;
41 import java.util.List;
42 import java.util.Set;
43 import javax.annotation.Resource;
44 import org.andromda.spring.PaginationResult;
45 import org.apache.commons.collections.CollectionUtils;
46 import org.apache.commons.collections.Transformer;
47 import org.hibernate.Criteria;
48 import org.hibernate.HibernateException;
49 import org.hibernate.Query;
50 import org.hibernate.ScrollableResults;
51
52
53
54
55
56
57
58
59
60 public abstract class ProgDepProgPrivDaoBase
61 extends HibernateDaoSupport
62 implements ProgDepProgPrivDao
63 {
64
65
66
67 @Override
68 public Object get(final int transform, final ProgDepProgPrivPK progDepProgPrivPk)
69 {
70 if (progDepProgPrivPk == null)
71 {
72 throw new IllegalArgumentException(
73 "ProgDepProgPriv.get - 'progDepProgPrivPk' can not be null");
74 }
75 final ProgDepProgPriv entity = get(ProgDepProgPrivImpl.class, progDepProgPrivPk);
76 return transformEntity(transform, entity);
77 }
78
79
80
81 @Override
82 public ProgDepProgPriv get(ProgDepProgPrivPK progDepProgPrivPk)
83 {
84 return (ProgDepProgPriv)this.get(TRANSFORM_NONE, progDepProgPrivPk);
85 }
86
87
88
89
90 @Override
91 public Object load(final int transform, final ProgDepProgPrivPK progDepProgPrivPk)
92 {
93 if (progDepProgPrivPk == null)
94 {
95 throw new IllegalArgumentException(
96 "ProgDepProgPriv.load - 'progDepProgPrivPk' can not be null");
97 }
98 final ProgDepProgPriv entity = get(ProgDepProgPrivImpl.class, progDepProgPrivPk);
99 return transformEntity(transform, entity);
100 }
101
102
103
104
105 @Override
106 public ProgDepProgPriv load(ProgDepProgPrivPK progDepProgPrivPk)
107 {
108 return (ProgDepProgPriv)this.load(TRANSFORM_NONE, progDepProgPrivPk);
109 }
110
111
112
113
114 @Override
115 @SuppressWarnings({"unchecked"})
116 public Collection<ProgDepProgPriv> loadAll()
117 {
118 return (Collection<ProgDepProgPriv>) this.loadAll(ProgDepProgPrivDao.TRANSFORM_NONE);
119 }
120
121
122
123
124 @Override
125 public Collection<?> loadAll(final int transform)
126 {
127 return this.loadAll(transform, -1, -1);
128 }
129
130
131
132
133 @Override
134 public Collection<?> loadAll(final int pageNumber, final int pageSize)
135 {
136 return this.loadAll(ProgDepProgPrivDao.TRANSFORM_NONE, pageNumber, pageSize);
137 }
138
139
140
141
142 @Override
143 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize)
144 {
145 try
146 {
147 final Criteria criteria = this.getSession().createCriteria(ProgDepProgPrivImpl.class);
148 if (pageNumber > 0 && pageSize > 0)
149 {
150 criteria.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
151 criteria.setMaxResults(pageSize);
152 }
153 final Collection<?> results = criteria.list();
154 this.transformEntities(transform, results);
155 return results;
156 }
157 catch (HibernateException ex)
158 {
159 throw ex;
160 }
161 }
162
163
164
165
166
167
168
169 protected int calculateFirstResult(int pageNumber, int pageSize)
170 {
171 int firstResult = 0;
172 if (pageNumber > 0)
173 {
174 firstResult = (pageNumber - 1) * pageSize;
175 }
176 return firstResult;
177 }
178
179
180
181
182 @Override
183 public ProgDepProgPriv create(ProgDepProgPriv progDepProgPriv)
184 {
185 return (ProgDepProgPriv)this.create(ProgDepProgPrivDao.TRANSFORM_NONE, progDepProgPriv);
186 }
187
188
189
190
191 @Override
192 public Object create(final int transform, final ProgDepProgPriv progDepProgPriv)
193 {
194 if (progDepProgPriv == null)
195 {
196 throw new IllegalArgumentException(
197 "ProgDepProgPriv.create - 'progDepProgPriv' can not be null");
198 }
199 this.getSessionFactory().getCurrentSession().save(progDepProgPriv);
200 return this.transformEntity(transform, progDepProgPriv);
201 }
202
203
204
205
206 @Override
207 @SuppressWarnings({"unchecked"})
208 public Collection<ProgDepProgPriv> create(final Collection<ProgDepProgPriv> entities)
209 {
210 return (Collection<ProgDepProgPriv>) create(ProgDepProgPrivDao.TRANSFORM_NONE, entities);
211 }
212
213
214
215
216 @Override
217 public Collection<?> create(final int transform, final Collection<ProgDepProgPriv> entities)
218 {
219 if (entities == null)
220 {
221 throw new IllegalArgumentException(
222 "ProgDepProgPriv.create - 'entities' can not be null");
223 }
224 for (ProgDepProgPriv entity : entities)
225 {
226 create(transform, entity);
227 }
228 return entities;
229 }
230
231
232
233
234 @Override
235 public ProgDepProgPriv create(
236 Timestamp updateDt)
237 {
238 return (ProgDepProgPriv)this.create(ProgDepProgPrivDao.TRANSFORM_NONE, updateDt);
239 }
240
241
242
243
244 @Override
245 public Object create(
246 final int transform,
247 Timestamp updateDt)
248 {
249 ProgDepProgPriv entity = new ProgDepProgPrivImpl();
250 entity.setUpdateDt(updateDt);
251 return this.create(transform, entity);
252 }
253
254
255
256
257 @Override
258 public ProgDepProgPriv create(
259 Timestamp updateDt,
260 ProgramPrivilege programPrivilege,
261 Department department,
262 Program program)
263 {
264 return (ProgDepProgPriv)this.create(ProgDepProgPrivDao.TRANSFORM_NONE, updateDt, programPrivilege, department, program);
265 }
266
267
268
269
270 @Override
271 public Object create(
272 final int transform,
273 Timestamp updateDt,
274 ProgramPrivilege programPrivilege,
275 Department department,
276 Program program)
277 {
278 ProgDepProgPriv entity = new ProgDepProgPrivImpl();
279 entity.setUpdateDt(updateDt);
280 entity.setProgramPrivilege(programPrivilege);
281 entity.setDepartment(department);
282 entity.setProgram(program);
283 return this.create(transform, entity);
284 }
285
286
287
288
289 @Override
290 public void update(ProgDepProgPriv progDepProgPriv)
291 {
292 if (progDepProgPriv == null)
293 {
294 throw new IllegalArgumentException(
295 "ProgDepProgPriv.update - 'progDepProgPriv' can not be null");
296 }
297 this.getSessionFactory().getCurrentSession().update(progDepProgPriv);
298 }
299
300
301
302
303 @Override
304 public void update(final Collection<ProgDepProgPriv> entities)
305 {
306 if (entities == null)
307 {
308 throw new IllegalArgumentException(
309 "ProgDepProgPriv.update - 'entities' can not be null");
310 }
311 for (ProgDepProgPriv entity : entities)
312 {
313 update(entity);
314 }
315 }
316
317
318
319
320 @Override
321 public void remove(ProgDepProgPriv progDepProgPriv)
322 {
323 if (progDepProgPriv == null)
324 {
325 throw new IllegalArgumentException(
326 "ProgDepProgPriv.remove - 'progDepProgPriv' can not be null");
327 }
328 this.getSessionFactory().getCurrentSession().delete(progDepProgPriv);
329 }
330
331
332
333
334 @Override
335 public void remove(ProgDepProgPrivPK progDepProgPrivPk)
336 {
337 if (progDepProgPrivPk == null)
338 {
339 throw new IllegalArgumentException(
340 "ProgDepProgPriv.remove - 'progDepProgPrivPk' can not be null");
341 }
342 ProgDepProgPriv entity = this.get(progDepProgPrivPk);
343 if (entity != null)
344 {
345 this.remove(entity);
346 }
347 }
348
349
350
351
352 @Override
353 public void remove(Collection<ProgDepProgPriv> entities)
354 {
355 if (entities == null)
356 {
357 throw new IllegalArgumentException(
358 "ProgDepProgPriv.remove - 'entities' can not be null");
359 }
360 deleteAll(entities);
361 }
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382 public Object transformEntity(final int transform, final ProgDepProgPriv entity)
383 {
384 Object target = null;
385 if (entity != null)
386 {
387 switch (transform)
388 {
389 case TRANSFORM_PROGDEPPROGPRIVVO :
390 target = toProgDepProgPrivVO(entity);
391 break;
392 case ProgDepProgPrivDao.TRANSFORM_NONE :
393 default:
394 target = entity;
395 }
396 }
397 return target;
398 }
399
400
401
402
403 @Override
404 public void transformEntities(final int transform, final Collection<?> entities)
405 {
406 switch (transform)
407 {
408 case TRANSFORM_PROGDEPPROGPRIVVO :
409 toProgDepProgPrivVOCollection(entities);
410 break;
411 case ProgDepProgPrivDao.TRANSFORM_NONE :
412 default:
413
414 }
415 }
416
417
418
419
420 public void toEntities(final Collection<?> results)
421 {
422 if (results != null)
423 {
424 CollectionUtils.transform(results, this.ENTITYTRANSFORMER);
425 }
426 }
427
428
429
430
431
432
433 private Transformer ENTITYTRANSFORMER =
434 new Transformer()
435 {
436 public Object transform(Object input)
437 {
438 Object result = null;
439 if (input instanceof Object[])
440 {
441 result = toEntity((Object[])input);
442 }
443 else if (input instanceof ProgDepProgPriv)
444 {
445 result = input;
446 }
447 return result;
448 }
449 };
450
451
452
453
454
455 protected ProgDepProgPriv toEntity(Object[] row)
456 {
457 ProgDepProgPriv target = null;
458 if (row != null)
459 {
460 final int numberOfObjects = row.length;
461 for (int ctr = 0; ctr < numberOfObjects; ctr++)
462 {
463 final Object object = row[ctr];
464 if (object instanceof ProgDepProgPriv)
465 {
466 target = (ProgDepProgPriv)object;
467 break;
468 }
469 }
470 }
471 return target;
472 }
473
474
475
476
477 @Override
478 @SuppressWarnings({"unchecked"})
479 public final Collection<ProgDepProgPrivVO> toProgDepProgPrivVOCollection(Collection<?> entities)
480 {
481 Collection<ProgDepProgPrivVO> result = new ArrayList<ProgDepProgPrivVO>();
482 if (entities != null)
483 {
484 CollectionUtils.transform(entities, this.PROGDEPPROGPRIVVO_TRANSFORMER);
485 result.addAll((Collection<? extends ProgDepProgPrivVO>) entities);
486 }
487 return result;
488 }
489
490
491
492
493 @Override
494 @SuppressWarnings({ "unchecked" })
495 public final ProgDepProgPrivVO[] toProgDepProgPrivVOArray(Collection<?> entities)
496 {
497 ProgDepProgPrivVO[] result = null;
498 if (entities != null)
499 {
500
501 final Collection collection = new ArrayList(entities);
502 this.toProgDepProgPrivVOCollection(collection);
503 result = (ProgDepProgPrivVO[]) collection.toArray(new ProgDepProgPrivVO[collection.size()]);
504 }
505 return result;
506 }
507
508
509
510
511
512
513
514
515
516 protected ProgDepProgPrivVO toProgDepProgPrivVO(Object[] row)
517 {
518 return this.toProgDepProgPrivVO(this.toEntity(row));
519 }
520
521
522
523
524
525
526 private Transformer PROGDEPPROGPRIVVO_TRANSFORMER =
527 new Transformer()
528 {
529 public Object transform(Object input)
530 {
531 Object result = null;
532 if (input instanceof ProgDepProgPriv)
533 {
534 result = toProgDepProgPrivVO((ProgDepProgPriv)input);
535 }
536 else if (input instanceof Object[])
537 {
538 result = toProgDepProgPrivVO((Object[])input);
539 }
540 return result;
541 }
542 };
543
544
545
546
547 @Override
548 public final void progDepProgPrivVOToEntityCollection(Collection<?> instances)
549 {
550 if (instances != null)
551 {
552 for (final Iterator<?> iterator = instances.iterator(); iterator.hasNext();)
553 {
554
555 if (!(iterator.next() instanceof ProgDepProgPrivVO))
556 {
557 iterator.remove();
558 }
559 }
560 CollectionUtils.transform(instances, this.ProgDepProgPrivVOToEntityTransformer);
561 }
562 }
563
564 private final Transformer ProgDepProgPrivVOToEntityTransformer =
565 new Transformer()
566 {
567 public Object transform(Object input)
568 {
569 return progDepProgPrivVOToEntity((ProgDepProgPrivVO)input);
570 }
571 };
572
573
574
575
576
577 @Override
578 public void toProgDepProgPrivVO(
579 ProgDepProgPriv source,
580 ProgDepProgPrivVO target)
581 {
582 target.setUpdateDt(source.getUpdateDt());
583 }
584
585
586
587
588 @Override
589 public ProgDepProgPrivVO toProgDepProgPrivVO(final ProgDepProgPriv entity)
590 {
591 ProgDepProgPrivVO target = null;
592 if (entity != null)
593 {
594 target = new ProgDepProgPrivVO();
595 this.toProgDepProgPrivVO(entity, target);
596 }
597 return target;
598 }
599
600
601
602
603 @Override
604 public void progDepProgPrivVOToEntity(
605 ProgDepProgPrivVO source,
606 ProgDepProgPriv target,
607 boolean copyIfNull)
608 {
609 if (copyIfNull || source.getUpdateDt() != null)
610 {
611 target.setUpdateDt(source.getUpdateDt());
612 }
613 }
614
615
616
617
618
619
620
621 protected Principal getPrincipal()
622 {
623 return PrincipalStore.get();
624 }
625
626
627
628
629 @Override
630 @SuppressWarnings({ "unchecked" })
631 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search)
632 {
633 try
634 {
635 search.setPageNumber(pageNumber);
636 search.setPageSize(pageSize);
637 final PropertySearch propertySearch = new PropertySearch(
638 this.getSession(), ProgDepProgPrivImpl.class, search);
639 final List results = propertySearch.executeAsList();
640 this.transformEntities(transform, results);
641 return new PaginationResult(results.toArray(new Object[results.size()]), propertySearch.getTotalCount());
642 }
643 catch (HibernateException ex)
644 {
645 throw ex;
646 }
647 }
648
649
650
651
652 @Override
653 public PaginationResult search(final int pageNumber, final int pageSize, final Search search)
654 {
655 return this.search(ProgDepProgPrivDao.TRANSFORM_NONE, pageNumber, pageSize, search);
656 }
657
658
659
660
661 @Override
662 public Set<?> search(final int transform, final Search search)
663 {
664 try
665 {
666 final PropertySearch propertySearch = new PropertySearch(
667 this.getSession(), ProgDepProgPrivImpl.class, search);
668 final Set<?> results = propertySearch.executeAsSet();
669 this.transformEntities(transform, results);
670 return results;
671 }
672 catch (HibernateException ex)
673 {
674 throw ex;
675 }
676 }
677
678
679
680
681 @Override
682 @SuppressWarnings("unchecked")
683 public Set<ProgDepProgPriv> search(final Search search)
684 {
685 return (Set<ProgDepProgPriv>) this.search(ProgDepProgPrivDao.TRANSFORM_NONE, search);
686 }
687
688
689
690
691
692
693
694
695
696 @SuppressWarnings({ "unchecked" })
697 protected PaginationResult getPaginationResult(
698 final Query queryObject,
699 final int transform, int pageNumber, int pageSize)
700 {
701 try
702 {
703 final ScrollableResults scrollableResults = queryObject.scroll();
704 scrollableResults.last();
705 int totalCount = scrollableResults.getRowNumber();
706 totalCount = totalCount >= 0 ? totalCount + 1 : 0;
707 if (pageNumber > 0 && pageSize > 0)
708 {
709 queryObject.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
710 queryObject.setMaxResults(pageSize);
711 }
712
713 Set results = new LinkedHashSet(queryObject.list());
714 transformEntities(transform, results);
715 return new PaginationResult(results.toArray(new Object[results.size()]), totalCount);
716 }
717 catch (HibernateException ex)
718 {
719 throw ex;
720 }
721 }
722
723
724 }