1
2
3
4
5
6 package fr.ifremer.quadrige3.core.dao.referential;
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.administration.user.PrivilegeCode;
32 import fr.ifremer.quadrige3.core.dao.technical.hibernate.HibernateDaoSupport;
33 import fr.ifremer.quadrige3.core.vo.administration.user.PrivilegeVO;
34 import java.security.Principal;
35 import java.sql.Timestamp;
36 import java.util.ArrayList;
37 import java.util.Collection;
38 import java.util.Iterator;
39 import java.util.LinkedHashSet;
40 import java.util.List;
41 import java.util.Set;
42 import javax.annotation.Resource;
43 import org.andromda.spring.PaginationResult;
44 import org.apache.commons.collections.CollectionUtils;
45 import org.apache.commons.collections.Transformer;
46 import org.hibernate.Criteria;
47 import org.hibernate.HibernateException;
48 import org.hibernate.Query;
49 import org.hibernate.ScrollableResults;
50
51
52
53
54
55
56
57
58
59 public abstract class PrivilegeDaoBase
60 extends HibernateDaoSupport
61 implements PrivilegeDao
62 {
63
64
65
66 @Override
67 public Object get(final int transform, final String privilegeCd)
68 {
69 if (privilegeCd == null)
70 {
71 throw new IllegalArgumentException(
72 "Privilege.get - 'privilegeCd' can not be null");
73 }
74 final Privilege entity = get(PrivilegeImpl.class, privilegeCd);
75 return transformEntity(transform, entity);
76 }
77
78
79
80 @Override
81 public Privilege get(String privilegeCd)
82 {
83 return (Privilege)this.get(TRANSFORM_NONE, privilegeCd);
84 }
85
86
87
88
89 @Override
90 public Object load(final int transform, final String privilegeCd)
91 {
92 if (privilegeCd == null)
93 {
94 throw new IllegalArgumentException(
95 "Privilege.load - 'privilegeCd' can not be null");
96 }
97 final Privilege entity = get(PrivilegeImpl.class, privilegeCd);
98 return transformEntity(transform, entity);
99 }
100
101
102
103
104 @Override
105 public Privilege load(String privilegeCd)
106 {
107 return (Privilege)this.load(TRANSFORM_NONE, privilegeCd);
108 }
109
110
111
112
113 @Override
114 @SuppressWarnings({"unchecked"})
115 public Collection<Privilege> loadAll()
116 {
117 return (Collection<Privilege>) this.loadAll(PrivilegeDao.TRANSFORM_NONE);
118 }
119
120
121
122
123 @Override
124 public Collection<?> loadAll(final int transform)
125 {
126 return this.loadAll(transform, -1, -1);
127 }
128
129
130
131
132 @Override
133 public Collection<?> loadAll(final int pageNumber, final int pageSize)
134 {
135 return this.loadAll(PrivilegeDao.TRANSFORM_NONE, pageNumber, pageSize);
136 }
137
138
139
140
141 @Override
142 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize)
143 {
144 try
145 {
146 final Criteria criteria = this.getSession().createCriteria(PrivilegeImpl.class);
147 if (pageNumber > 0 && pageSize > 0)
148 {
149 criteria.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
150 criteria.setMaxResults(pageSize);
151 }
152 final Collection<?> results = criteria.list();
153 this.transformEntities(transform, results);
154 return results;
155 }
156 catch (HibernateException ex)
157 {
158 throw ex;
159 }
160 }
161
162
163
164
165
166
167
168 protected int calculateFirstResult(int pageNumber, int pageSize)
169 {
170 int firstResult = 0;
171 if (pageNumber > 0)
172 {
173 firstResult = (pageNumber - 1) * pageSize;
174 }
175 return firstResult;
176 }
177
178
179
180
181 @Override
182 public Privilege create(Privilege privilege)
183 {
184 return (Privilege)this.create(PrivilegeDao.TRANSFORM_NONE, privilege);
185 }
186
187
188
189
190 @Override
191 public Object create(final int transform, final Privilege privilege)
192 {
193 if (privilege == null)
194 {
195 throw new IllegalArgumentException(
196 "Privilege.create - 'privilege' can not be null");
197 }
198 this.getSessionFactory().getCurrentSession().save(privilege);
199 return this.transformEntity(transform, privilege);
200 }
201
202
203
204
205 @Override
206 @SuppressWarnings({"unchecked"})
207 public Collection<Privilege> create(final Collection<Privilege> entities)
208 {
209 return (Collection<Privilege>) create(PrivilegeDao.TRANSFORM_NONE, entities);
210 }
211
212
213
214
215 @Override
216 public Collection<?> create(final int transform, final Collection<Privilege> entities)
217 {
218 if (entities == null)
219 {
220 throw new IllegalArgumentException(
221 "Privilege.create - 'entities' can not be null");
222 }
223 for (Privilege entity : entities)
224 {
225 create(transform, entity);
226 }
227 return entities;
228 }
229
230
231
232
233 @Override
234 public Privilege create(
235 String privilegeNm,
236 String privilegeDc,
237 Timestamp updateDt)
238 {
239 return (Privilege)this.create(PrivilegeDao.TRANSFORM_NONE, privilegeNm, privilegeDc, updateDt);
240 }
241
242
243
244
245 @Override
246 public Object create(
247 final int transform,
248 String privilegeNm,
249 String privilegeDc,
250 Timestamp updateDt)
251 {
252 Privilege entity = new PrivilegeImpl();
253 entity.setPrivilegeNm(privilegeNm);
254 entity.setPrivilegeDc(privilegeDc);
255 entity.setUpdateDt(updateDt);
256 return this.create(transform, entity);
257 }
258
259
260
261
262 @Override
263 public Privilege create(
264 String privilegeNm,
265 Status status)
266 {
267 return (Privilege)this.create(PrivilegeDao.TRANSFORM_NONE, privilegeNm, status);
268 }
269
270
271
272
273 @Override
274 public Object create(
275 final int transform,
276 String privilegeNm,
277 Status status)
278 {
279 Privilege entity = new PrivilegeImpl();
280 entity.setPrivilegeNm(privilegeNm);
281 entity.setStatus(status);
282 return this.create(transform, entity);
283 }
284
285
286
287
288 @Override
289 public void update(Privilege privilege)
290 {
291 if (privilege == null)
292 {
293 throw new IllegalArgumentException(
294 "Privilege.update - 'privilege' can not be null");
295 }
296 this.getSessionFactory().getCurrentSession().update(privilege);
297 }
298
299
300
301
302 @Override
303 public void update(final Collection<Privilege> entities)
304 {
305 if (entities == null)
306 {
307 throw new IllegalArgumentException(
308 "Privilege.update - 'entities' can not be null");
309 }
310 for (Privilege entity : entities)
311 {
312 update(entity);
313 }
314 }
315
316
317
318
319 @Override
320 public void remove(Privilege privilege)
321 {
322 if (privilege == null)
323 {
324 throw new IllegalArgumentException(
325 "Privilege.remove - 'privilege' can not be null");
326 }
327 this.getSessionFactory().getCurrentSession().delete(privilege);
328 }
329
330
331
332
333 @Override
334 public void remove(String privilegeCd)
335 {
336 if (privilegeCd == null)
337 {
338 throw new IllegalArgumentException(
339 "Privilege.remove - 'privilegeCd' can not be null");
340 }
341 Privilege entity = this.get(privilegeCd);
342 if (entity != null)
343 {
344 this.remove(entity);
345 }
346 }
347
348
349
350
351 @Override
352 public void remove(Collection<Privilege> entities)
353 {
354 if (entities == null)
355 {
356 throw new IllegalArgumentException(
357 "Privilege.remove - 'entities' can not be null");
358 }
359 deleteAll(entities);
360 }
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 Privilege entity)
383 {
384 Object target = null;
385 if (entity != null)
386 {
387 switch (transform)
388 {
389 case TRANSFORM_PRIVILEGEVO :
390 target = toPrivilegeVO(entity);
391 break;
392 case TRANSFORM_PRIVILEGECODE :
393 target = toPrivilegeCode(entity);
394 break;
395 case PrivilegeDao.TRANSFORM_NONE :
396 default:
397 target = entity;
398 }
399 }
400 return target;
401 }
402
403
404
405
406 @Override
407 public void transformEntities(final int transform, final Collection<?> entities)
408 {
409 switch (transform)
410 {
411 case TRANSFORM_PRIVILEGEVO :
412 toPrivilegeVOCollection(entities);
413 break;
414 case TRANSFORM_PRIVILEGECODE :
415 toPrivilegeCodeCollection(entities);
416 break;
417 case PrivilegeDao.TRANSFORM_NONE :
418 default:
419
420 }
421 }
422
423
424
425
426 public void toEntities(final Collection<?> results)
427 {
428 if (results != null)
429 {
430 CollectionUtils.transform(results, this.ENTITYTRANSFORMER);
431 }
432 }
433
434
435
436
437
438
439 private Transformer ENTITYTRANSFORMER =
440 new Transformer()
441 {
442 public Object transform(Object input)
443 {
444 Object result = null;
445 if (input instanceof Object[])
446 {
447 result = toEntity((Object[])input);
448 }
449 else if (input instanceof Privilege)
450 {
451 result = input;
452 }
453 return result;
454 }
455 };
456
457
458
459
460
461 protected Privilege toEntity(Object[] row)
462 {
463 Privilege target = null;
464 if (row != null)
465 {
466 final int numberOfObjects = row.length;
467 for (int ctr = 0; ctr < numberOfObjects; ctr++)
468 {
469 final Object object = row[ctr];
470 if (object instanceof Privilege)
471 {
472 target = (Privilege)object;
473 break;
474 }
475 }
476 }
477 return target;
478 }
479
480
481
482
483 @Override
484 @SuppressWarnings({"unchecked"})
485 public final Collection<PrivilegeVO> toPrivilegeVOCollection(Collection<?> entities)
486 {
487 Collection<PrivilegeVO> result = new ArrayList<PrivilegeVO>();
488 if (entities != null)
489 {
490 CollectionUtils.transform(entities, this.PRIVILEGEVO_TRANSFORMER);
491 result.addAll((Collection<? extends PrivilegeVO>) entities);
492 }
493 return result;
494 }
495
496
497
498
499 @Override
500 @SuppressWarnings({ "unchecked" })
501 public final PrivilegeVO[] toPrivilegeVOArray(Collection<?> entities)
502 {
503 PrivilegeVO[] result = null;
504 if (entities != null)
505 {
506
507 final Collection collection = new ArrayList(entities);
508 this.toPrivilegeVOCollection(collection);
509 result = (PrivilegeVO[]) collection.toArray(new PrivilegeVO[collection.size()]);
510 }
511 return result;
512 }
513
514
515
516
517
518
519
520
521
522 protected PrivilegeVO toPrivilegeVO(Object[] row)
523 {
524 return this.toPrivilegeVO(this.toEntity(row));
525 }
526
527
528
529
530
531
532 private Transformer PRIVILEGEVO_TRANSFORMER =
533 new Transformer()
534 {
535 public Object transform(Object input)
536 {
537 Object result = null;
538 if (input instanceof Privilege)
539 {
540 result = toPrivilegeVO((Privilege)input);
541 }
542 else if (input instanceof Object[])
543 {
544 result = toPrivilegeVO((Object[])input);
545 }
546 return result;
547 }
548 };
549
550
551
552
553 @Override
554 public final void privilegeVOToEntityCollection(Collection<?> instances)
555 {
556 if (instances != null)
557 {
558 for (final Iterator<?> iterator = instances.iterator(); iterator.hasNext();)
559 {
560
561 if (!(iterator.next() instanceof PrivilegeVO))
562 {
563 iterator.remove();
564 }
565 }
566 CollectionUtils.transform(instances, this.PrivilegeVOToEntityTransformer);
567 }
568 }
569
570 private final Transformer PrivilegeVOToEntityTransformer =
571 new Transformer()
572 {
573 public Object transform(Object input)
574 {
575 return privilegeVOToEntity((PrivilegeVO)input);
576 }
577 };
578
579
580
581
582
583 @Override
584 public void toPrivilegeVO(
585 Privilege source,
586 PrivilegeVO target)
587 {
588 target.setPrivilegeCd(source.getPrivilegeCd());
589 target.setPrivilegeNm(source.getPrivilegeNm());
590 target.setPrivilegeDc(source.getPrivilegeDc());
591 target.setUpdateDt(source.getUpdateDt());
592 }
593
594
595
596
597 @Override
598 public PrivilegeVO toPrivilegeVO(final Privilege entity)
599 {
600 PrivilegeVO target = null;
601 if (entity != null)
602 {
603 target = new PrivilegeVO();
604 this.toPrivilegeVO(entity, target);
605 }
606 return target;
607 }
608
609
610
611
612 @Override
613 public void privilegeVOToEntity(
614 PrivilegeVO source,
615 Privilege target,
616 boolean copyIfNull)
617 {
618 if (copyIfNull || source.getPrivilegeNm() != null)
619 {
620 target.setPrivilegeNm(source.getPrivilegeNm());
621 }
622 if (copyIfNull || source.getPrivilegeDc() != null)
623 {
624 target.setPrivilegeDc(source.getPrivilegeDc());
625 }
626 if (copyIfNull || source.getUpdateDt() != null)
627 {
628 target.setUpdateDt(source.getUpdateDt());
629 }
630 }
631
632
633
634
635 @Override
636 @SuppressWarnings({"unchecked"})
637 public final Collection<PrivilegeCode> toPrivilegeCodeCollection(Collection<?> entities)
638 {
639 Collection<PrivilegeCode> result = new ArrayList<PrivilegeCode>();
640 if (entities != null)
641 {
642 CollectionUtils.transform(entities, this.PRIVILEGECODE_TRANSFORMER);
643 result.addAll((Collection<? extends PrivilegeCode>) entities);
644 }
645 return result;
646 }
647
648
649
650
651 @Override
652 @SuppressWarnings({ "unchecked" })
653 public final PrivilegeCode[] toPrivilegeCodeArray(Collection<?> entities)
654 {
655 PrivilegeCode[] result = null;
656 if (entities != null)
657 {
658
659 final Collection collection = new ArrayList(entities);
660 this.toPrivilegeCodeCollection(collection);
661 result = (PrivilegeCode[]) collection.toArray(new PrivilegeCode[collection.size()]);
662 }
663 return result;
664 }
665
666
667
668
669
670
671
672
673
674 protected PrivilegeCode toPrivilegeCode(Object[] row)
675 {
676 return this.toPrivilegeCode(this.toEntity(row));
677 }
678
679
680
681
682
683
684 private Transformer PRIVILEGECODE_TRANSFORMER =
685 new Transformer()
686 {
687 public Object transform(Object input)
688 {
689 Object result = null;
690 if (input instanceof Privilege)
691 {
692 result = toPrivilegeCode((Privilege)input);
693 }
694 else if (input instanceof Object[])
695 {
696 result = toPrivilegeCode((Object[])input);
697 }
698 return result;
699 }
700 };
701
702
703
704
705 @Override
706 public final void privilegeCodeToEntityCollection(Collection<?> instances)
707 {
708 if (instances != null)
709 {
710 for (final Iterator<?> iterator = instances.iterator(); iterator.hasNext();)
711 {
712
713 if (!(iterator.next() instanceof PrivilegeCode))
714 {
715 iterator.remove();
716 }
717 }
718 CollectionUtils.transform(instances, this.PrivilegeCodeToEntityTransformer);
719 }
720 }
721
722 private final Transformer PrivilegeCodeToEntityTransformer =
723 new Transformer()
724 {
725 public Object transform(Object input)
726 {
727 return privilegeCodeToEntity((PrivilegeCode)input);
728 }
729 };
730
731
732
733
734
735 @Override
736 public void toPrivilegeCode(
737 Privilege source,
738 PrivilegeCode target)
739 {
740 }
741
742
743
744
745 @Override
746 public PrivilegeCode toPrivilegeCode(final Privilege entity)
747 {
748 PrivilegeCode target = null;
749 if (entity != null)
750 {
751
752 target = null;
753 this.toPrivilegeCode(entity, target);
754 }
755 return target;
756 }
757
758
759
760
761 @Override
762 public void privilegeCodeToEntity(
763 PrivilegeCode source,
764 Privilege target,
765 boolean copyIfNull)
766 {
767 }
768
769
770
771
772
773
774
775 protected Principal getPrincipal()
776 {
777 return PrincipalStore.get();
778 }
779
780
781
782
783 @Override
784 @SuppressWarnings({ "unchecked" })
785 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search)
786 {
787 try
788 {
789 search.setPageNumber(pageNumber);
790 search.setPageSize(pageSize);
791 final PropertySearch propertySearch = new PropertySearch(
792 this.getSession(), PrivilegeImpl.class, search);
793 final List results = propertySearch.executeAsList();
794 this.transformEntities(transform, results);
795 return new PaginationResult(results.toArray(new Object[results.size()]), propertySearch.getTotalCount());
796 }
797 catch (HibernateException ex)
798 {
799 throw ex;
800 }
801 }
802
803
804
805
806 @Override
807 public PaginationResult search(final int pageNumber, final int pageSize, final Search search)
808 {
809 return this.search(PrivilegeDao.TRANSFORM_NONE, pageNumber, pageSize, search);
810 }
811
812
813
814
815 @Override
816 public Set<?> search(final int transform, final Search search)
817 {
818 try
819 {
820 final PropertySearch propertySearch = new PropertySearch(
821 this.getSession(), PrivilegeImpl.class, search);
822 final Set<?> results = propertySearch.executeAsSet();
823 this.transformEntities(transform, results);
824 return results;
825 }
826 catch (HibernateException ex)
827 {
828 throw ex;
829 }
830 }
831
832
833
834
835 @Override
836 @SuppressWarnings("unchecked")
837 public Set<Privilege> search(final Search search)
838 {
839 return (Set<Privilege>) this.search(PrivilegeDao.TRANSFORM_NONE, search);
840 }
841
842
843
844
845
846
847
848
849
850 @SuppressWarnings({ "unchecked" })
851 protected PaginationResult getPaginationResult(
852 final Query queryObject,
853 final int transform, int pageNumber, int pageSize)
854 {
855 try
856 {
857 final ScrollableResults scrollableResults = queryObject.scroll();
858 scrollableResults.last();
859 int totalCount = scrollableResults.getRowNumber();
860 totalCount = totalCount >= 0 ? totalCount + 1 : 0;
861 if (pageNumber > 0 && pageSize > 0)
862 {
863 queryObject.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
864 queryObject.setMaxResults(pageSize);
865 }
866
867 Set results = new LinkedHashSet(queryObject.list());
868 transformEntities(transform, results);
869 return new PaginationResult(results.toArray(new Object[results.size()]), totalCount);
870 }
871 catch (HibernateException ex)
872 {
873 throw ex;
874 }
875 }
876
877
878 }