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