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