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