1
2
3
4
5
6 package fr.ifremer.quadrige2.core.dao.data.measurement;
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.ObjectType;
33 import fr.ifremer.quadrige2.core.dao.referential.QualityFlag;
34 import fr.ifremer.quadrige2.core.dao.referential.pmfm.Pmfm;
35 import fr.ifremer.quadrige2.core.dao.technical.hibernate.HibernateDaoSupport;
36 import java.security.Principal;
37 import java.sql.Timestamp;
38 import java.util.Collection;
39 import java.util.Date;
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 MeasurementFileDaoBase
61 extends HibernateDaoSupport
62 implements MeasurementFileDao
63 {
64
65
66
67 @Override
68 public Object get(final int transform, final Integer measFileId)
69 {
70 if (measFileId == null)
71 {
72 throw new IllegalArgumentException(
73 "MeasurementFile.get - 'measFileId' can not be null");
74 }
75 final MeasurementFile entity = get(MeasurementFileImpl.class, measFileId);
76 return transformEntity(transform, entity);
77 }
78
79
80
81 @Override
82 public MeasurementFile get(Integer measFileId)
83 {
84 return (MeasurementFile)this.get(TRANSFORM_NONE, measFileId);
85 }
86
87
88
89
90 @Override
91 public Object load(final int transform, final Integer measFileId)
92 {
93 if (measFileId == null)
94 {
95 throw new IllegalArgumentException(
96 "MeasurementFile.load - 'measFileId' can not be null");
97 }
98 final MeasurementFile entity = get(MeasurementFileImpl.class, measFileId);
99 return transformEntity(transform, entity);
100 }
101
102
103
104
105 @Override
106 public MeasurementFile load(Integer measFileId)
107 {
108 return (MeasurementFile)this.load(TRANSFORM_NONE, measFileId);
109 }
110
111
112
113
114 @Override
115 @SuppressWarnings({"unchecked"})
116 public Collection<MeasurementFile> loadAll()
117 {
118 return (Collection<MeasurementFile>) this.loadAll(MeasurementFileDao.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(MeasurementFileDao.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(MeasurementFileImpl.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 MeasurementFile create(MeasurementFile measurementFile)
184 {
185 return (MeasurementFile)this.create(MeasurementFileDao.TRANSFORM_NONE, measurementFile);
186 }
187
188
189
190
191 @Override
192 public Object create(final int transform, final MeasurementFile measurementFile)
193 {
194 if (measurementFile == null)
195 {
196 throw new IllegalArgumentException(
197 "MeasurementFile.create - 'measurementFile' can not be null");
198 }
199 this.getSessionFactory().getCurrentSession().save(measurementFile);
200 return this.transformEntity(transform, measurementFile);
201 }
202
203
204
205
206 @Override
207 @SuppressWarnings({"unchecked"})
208 public Collection<MeasurementFile> create(final Collection<MeasurementFile> entities)
209 {
210 return (Collection<MeasurementFile>) create(MeasurementFileDao.TRANSFORM_NONE, entities);
211 }
212
213
214
215
216 @Override
217 public Collection<?> create(final int transform, final Collection<MeasurementFile> entities)
218 {
219 if (entities == null)
220 {
221 throw new IllegalArgumentException(
222 "MeasurementFile.create - 'entities' can not be null");
223 }
224 for (MeasurementFile entity : entities)
225 {
226 create(transform, entity);
227 }
228 return entities;
229 }
230
231
232
233
234 @Override
235 public MeasurementFile create(
236 Integer objectId,
237 String measFilePathNm,
238 String measFileNm,
239 String measFileCm,
240 Date measFileValidDt,
241 Date measFileControlDt,
242 Date measFileQualifDt,
243 String measFileQualifCm,
244 Timestamp updateDt,
245 String parCd,
246 Integer matrixId,
247 Integer fractionId,
248 Integer methodId)
249 {
250 return (MeasurementFile)this.create(MeasurementFileDao.TRANSFORM_NONE, objectId, measFilePathNm, measFileNm, measFileCm, measFileValidDt, measFileControlDt, measFileQualifDt, measFileQualifCm, updateDt, parCd, matrixId, fractionId, methodId);
251 }
252
253
254
255
256 @Override
257 public Object create(
258 final int transform,
259 Integer objectId,
260 String measFilePathNm,
261 String measFileNm,
262 String measFileCm,
263 Date measFileValidDt,
264 Date measFileControlDt,
265 Date measFileQualifDt,
266 String measFileQualifCm,
267 Timestamp updateDt,
268 String parCd,
269 Integer matrixId,
270 Integer fractionId,
271 Integer methodId)
272 {
273 MeasurementFile entity = new MeasurementFileImpl();
274 entity.setObjectId(objectId);
275 entity.setMeasFilePathNm(measFilePathNm);
276 entity.setMeasFileNm(measFileNm);
277 entity.setMeasFileCm(measFileCm);
278 entity.setMeasFileValidDt(measFileValidDt);
279 entity.setMeasFileControlDt(measFileControlDt);
280 entity.setMeasFileQualifDt(measFileQualifDt);
281 entity.setMeasFileQualifCm(measFileQualifCm);
282 entity.setUpdateDt(updateDt);
283 entity.setParCd(parCd);
284 entity.setMatrixId(matrixId);
285 entity.setFractionId(fractionId);
286 entity.setMethodId(methodId);
287 return this.create(transform, entity);
288 }
289
290
291
292
293 @Override
294 public MeasurementFile create(
295 String measFilePathNm,
296 Integer objectId,
297 Timestamp updateDt,
298 ObjectType objectType,
299 Pmfm pmfm,
300 QualityFlag qualityFlag)
301 {
302 return (MeasurementFile)this.create(MeasurementFileDao.TRANSFORM_NONE, measFilePathNm, objectId, updateDt, objectType, pmfm, qualityFlag);
303 }
304
305
306
307
308 @Override
309 public Object create(
310 final int transform,
311 String measFilePathNm,
312 Integer objectId,
313 Timestamp updateDt,
314 ObjectType objectType,
315 Pmfm pmfm,
316 QualityFlag qualityFlag)
317 {
318 MeasurementFile entity = new MeasurementFileImpl();
319 entity.setMeasFilePathNm(measFilePathNm);
320 entity.setObjectId(objectId);
321 entity.setUpdateDt(updateDt);
322 entity.setObjectType(objectType);
323 entity.setPmfm(pmfm);
324 entity.setQualityFlag(qualityFlag);
325 return this.create(transform, entity);
326 }
327
328
329
330
331 @Override
332 public void update(MeasurementFile measurementFile)
333 {
334 if (measurementFile == null)
335 {
336 throw new IllegalArgumentException(
337 "MeasurementFile.update - 'measurementFile' can not be null");
338 }
339 this.getSessionFactory().getCurrentSession().update(measurementFile);
340 }
341
342
343
344
345 @Override
346 public void update(final Collection<MeasurementFile> entities)
347 {
348 if (entities == null)
349 {
350 throw new IllegalArgumentException(
351 "MeasurementFile.update - 'entities' can not be null");
352 }
353 for (MeasurementFile entity : entities)
354 {
355 update(entity);
356 }
357 }
358
359
360
361
362 @Override
363 public void remove(MeasurementFile measurementFile)
364 {
365 if (measurementFile == null)
366 {
367 throw new IllegalArgumentException(
368 "MeasurementFile.remove - 'measurementFile' can not be null");
369 }
370 this.getSessionFactory().getCurrentSession().delete(measurementFile);
371 }
372
373
374
375
376 @Override
377 public void remove(Integer measFileId)
378 {
379 if (measFileId == null)
380 {
381 throw new IllegalArgumentException(
382 "MeasurementFile.remove - 'measFileId' can not be null");
383 }
384 MeasurementFile entity = this.get(measFileId);
385 if (entity != null)
386 {
387 this.remove(entity);
388 }
389 }
390
391
392
393
394 @Override
395 public void remove(Collection<MeasurementFile> entities)
396 {
397 if (entities == null)
398 {
399 throw new IllegalArgumentException(
400 "MeasurementFile.remove - 'entities' can not be null");
401 }
402 deleteAll(entities);
403 }
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418 public Object transformEntity(final int transform, final MeasurementFile entity)
419 {
420 Object target = null;
421 if (entity != null)
422 {
423 switch (transform)
424 {
425 case MeasurementFileDao.TRANSFORM_NONE :
426 default:
427 target = entity;
428 }
429 }
430 return target;
431 }
432
433
434
435
436 @Override
437 public void transformEntities(final int transform, final Collection<?> entities)
438 {
439 switch (transform)
440 {
441 case MeasurementFileDao.TRANSFORM_NONE :
442 default:
443
444 }
445 }
446
447
448
449
450 public void toEntities(final Collection<?> results)
451 {
452 if (results != null)
453 {
454 CollectionUtils.transform(results, this.ENTITYTRANSFORMER);
455 }
456 }
457
458
459
460
461
462
463 private Transformer ENTITYTRANSFORMER =
464 new Transformer()
465 {
466 public Object transform(Object input)
467 {
468 Object result = null;
469 if (input instanceof Object[])
470 {
471 result = toEntity((Object[])input);
472 }
473 else if (input instanceof MeasurementFile)
474 {
475 result = input;
476 }
477 return result;
478 }
479 };
480
481
482
483
484
485 protected MeasurementFile toEntity(Object[] row)
486 {
487 MeasurementFile target = null;
488 if (row != null)
489 {
490 final int numberOfObjects = row.length;
491 for (int ctr = 0; ctr < numberOfObjects; ctr++)
492 {
493 final Object object = row[ctr];
494 if (object instanceof MeasurementFile)
495 {
496 target = (MeasurementFile)object;
497 break;
498 }
499 }
500 }
501 return target;
502 }
503
504
505
506
507
508
509
510 protected Principal getPrincipal()
511 {
512 return PrincipalStore.get();
513 }
514
515
516
517
518 @Override
519 @SuppressWarnings({ "unchecked" })
520 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search)
521 {
522 try
523 {
524 search.setPageNumber(pageNumber);
525 search.setPageSize(pageSize);
526 final PropertySearch propertySearch = new PropertySearch(
527 this.getSession(), MeasurementFileImpl.class, search);
528 final List results = propertySearch.executeAsList();
529 this.transformEntities(transform, results);
530 return new PaginationResult(results.toArray(new Object[results.size()]), propertySearch.getTotalCount());
531 }
532 catch (HibernateException ex)
533 {
534 throw ex;
535 }
536 }
537
538
539
540
541 @Override
542 public PaginationResult search(final int pageNumber, final int pageSize, final Search search)
543 {
544 return this.search(MeasurementFileDao.TRANSFORM_NONE, pageNumber, pageSize, search);
545 }
546
547
548
549
550 @Override
551 public Set<?> search(final int transform, final Search search)
552 {
553 try
554 {
555 final PropertySearch propertySearch = new PropertySearch(
556 this.getSession(), MeasurementFileImpl.class, search);
557 final Set<?> results = propertySearch.executeAsSet();
558 this.transformEntities(transform, results);
559 return results;
560 }
561 catch (HibernateException ex)
562 {
563 throw ex;
564 }
565 }
566
567
568
569
570 @Override
571 @SuppressWarnings("unchecked")
572 public Set<MeasurementFile> search(final Search search)
573 {
574 return (Set<MeasurementFile>) this.search(MeasurementFileDao.TRANSFORM_NONE, search);
575 }
576
577
578
579
580
581
582
583
584
585 @SuppressWarnings({ "unchecked" })
586 protected PaginationResult getPaginationResult(
587 final Query queryObject,
588 final int transform, int pageNumber, int pageSize)
589 {
590 try
591 {
592 final ScrollableResults scrollableResults = queryObject.scroll();
593 scrollableResults.last();
594 int totalCount = scrollableResults.getRowNumber();
595 totalCount = totalCount >= 0 ? totalCount + 1 : 0;
596 if (pageNumber > 0 && pageSize > 0)
597 {
598 queryObject.setFirstResult(this.calculateFirstResult(pageNumber, pageSize));
599 queryObject.setMaxResults(pageSize);
600 }
601
602 Set results = new LinkedHashSet(queryObject.list());
603 transformEntities(transform, results);
604 return new PaginationResult(results.toArray(new Object[results.size()]), totalCount);
605 }
606 catch (HibernateException ex)
607 {
608 throw ex;
609 }
610 }
611
612
613 }