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