1 // license-header java merge-point
2 //
3 // Attention: Generated code! Do not modify by hand!
4 // Generated by: hibernate/HibernateEntity.vsl in andromda-hibernate-cartridge.
5 //
6 package fr.ifremer.quadrige3.core.dao.data.aquaculture;
7
8 /*-
9 * #%L
10 * Quadrige3 Core :: Client API
11 * %%
12 * Copyright (C) 2017 - 2024 Ifremer
13 * %%
14 * This program is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Affero General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU Affero General Public License
25 * along with this program. If not, see <http://www.gnu.org/licenses/>.
26 * #L%
27 */
28 import fr.ifremer.quadrige3.core.dao.data.samplingoperation.SamplingOperation;
29 import fr.ifremer.quadrige3.core.dao.referential.DepthLevel;
30 import fr.ifremer.quadrige3.core.dao.referential.QualityFlag;
31 import fr.ifremer.quadrige3.core.dao.referential.monitoringLocation.MonitoringLocation;
32 import java.io.Serializable;
33 import java.sql.Timestamp;
34 import java.util.Collection;
35 import java.util.Date;
36 import java.util.HashSet;
37
38 /**
39 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
40 * dans des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
41 * une population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
42 * structure) * un niveau Ce lot de mollusques est positionné sur le terrain.
43 */
44 // HibernateEntity.vsl annotations merge-point
45 public abstract class Batch
46 implements Serializable, Comparable<Batch>
47 {
48 /**
49 * The serial version UID of this class. Needed for serialization.
50 */
51 private static final long serialVersionUID = 789657765537097220L;
52
53 // Generate 13 attributes
54 private Integer batchId;
55
56 /**
57 * Identifiant interne du lot
58 * @return this.batchId Integer
59 */
60 public Integer getBatchId()
61 {
62 return this.batchId;
63 }
64
65 /**
66 * Identifiant interne du lot
67 * @param batchIdIn Integer
68 */
69 public void setBatchId(Integer batchIdIn)
70 {
71 this.batchId = batchIdIn;
72 }
73
74 private String batchNm;
75
76 /**
77 * Libellé du lot
78 * @return this.batchNm String
79 */
80 public String getBatchNm()
81 {
82 return this.batchNm;
83 }
84
85 /**
86 * Libellé du lot
87 * @param batchNmIn String
88 */
89 public void setBatchNm(String batchNmIn)
90 {
91 this.batchNm = batchNmIn;
92 }
93
94 private String batchLb;
95
96 /**
97 * Mnémonique du lot
98 * @return this.batchLb String
99 */
100 public String getBatchLb()
101 {
102 return this.batchLb;
103 }
104
105 /**
106 * Mnémonique du lot
107 * @param batchLbIn String
108 */
109 public void setBatchLb(String batchLbIn)
110 {
111 this.batchLb = batchLbIn;
112 }
113
114 private String batchExperCond;
115
116 /**
117 * Conditions d'expérimentation
118 * @return this.batchExperCond String
119 */
120 public String getBatchExperCond()
121 {
122 return this.batchExperCond;
123 }
124
125 /**
126 * Conditions d'expérimentation
127 * @param batchExperCondIn String
128 */
129 public void setBatchExperCond(String batchExperCondIn)
130 {
131 this.batchExperCond = batchExperCondIn;
132 }
133
134 private Integer batchBreedingStructurUnit;
135
136 /**
137 * Nombre d'occurences de la structure d'élevage
138 * @return this.batchBreedingStructurUnit Integer
139 */
140 public Integer getBatchBreedingStructurUnit()
141 {
142 return this.batchBreedingStructurUnit;
143 }
144
145 /**
146 * Nombre d'occurences de la structure d'élevage
147 * @param batchBreedingStructurUnitIn Integer
148 */
149 public void setBatchBreedingStructurUnit(Integer batchBreedingStructurUnitIn)
150 {
151 this.batchBreedingStructurUnit = batchBreedingStructurUnitIn;
152 }
153
154 private Integer batchBreedingSystemUnit;
155
156 /**
157 * Nombre d'occurences du système d'élevage
158 * @return this.batchBreedingSystemUnit Integer
159 */
160 public Integer getBatchBreedingSystemUnit()
161 {
162 return this.batchBreedingSystemUnit;
163 }
164
165 /**
166 * Nombre d'occurences du système d'élevage
167 * @param batchBreedingSystemUnitIn Integer
168 */
169 public void setBatchBreedingSystemUnit(Integer batchBreedingSystemUnitIn)
170 {
171 this.batchBreedingSystemUnit = batchBreedingSystemUnitIn;
172 }
173
174 private String batchCm;
175
176 /**
177 * Commentaire sur le lot
178 * @return this.batchCm String
179 */
180 public String getBatchCm()
181 {
182 return this.batchCm;
183 }
184
185 /**
186 * Commentaire sur le lot
187 * @param batchCmIn String
188 */
189 public void setBatchCm(String batchCmIn)
190 {
191 this.batchCm = batchCmIn;
192 }
193
194 private Date batchControlDt;
195
196 /**
197 * Date de contrôle du lot
198 * @return this.batchControlDt Date
199 */
200 public Date getBatchControlDt()
201 {
202 return this.batchControlDt;
203 }
204
205 /**
206 * Date de contrôle du lot
207 * @param batchControlDtIn Date
208 */
209 public void setBatchControlDt(Date batchControlDtIn)
210 {
211 this.batchControlDt = batchControlDtIn;
212 }
213
214 private Date batchValidDt;
215
216 /**
217 * Date de validation du lot
218 * @return this.batchValidDt Date
219 */
220 public Date getBatchValidDt()
221 {
222 return this.batchValidDt;
223 }
224
225 /**
226 * Date de validation du lot
227 * @param batchValidDtIn Date
228 */
229 public void setBatchValidDt(Date batchValidDtIn)
230 {
231 this.batchValidDt = batchValidDtIn;
232 }
233
234 private Date batchQualifDt;
235
236 /**
237 * Date de qualification du lot
238 * @return this.batchQualifDt Date
239 */
240 public Date getBatchQualifDt()
241 {
242 return this.batchQualifDt;
243 }
244
245 /**
246 * Date de qualification du lot
247 * @param batchQualifDtIn Date
248 */
249 public void setBatchQualifDt(Date batchQualifDtIn)
250 {
251 this.batchQualifDt = batchQualifDtIn;
252 }
253
254 private String batchQualifCm;
255
256 /**
257 * Commentaire de qualifcation du lot
258 * @return this.batchQualifCm String
259 */
260 public String getBatchQualifCm()
261 {
262 return this.batchQualifCm;
263 }
264
265 /**
266 * Commentaire de qualifcation du lot
267 * @param batchQualifCmIn String
268 */
269 public void setBatchQualifCm(String batchQualifCmIn)
270 {
271 this.batchQualifCm = batchQualifCmIn;
272 }
273
274 private Timestamp updateDt;
275
276 /**
277 * Date de maj
278 * @return this.updateDt Timestamp
279 */
280 public Timestamp getUpdateDt()
281 {
282 return this.updateDt;
283 }
284
285 /**
286 * Date de maj
287 * @param updateDtIn Timestamp
288 */
289 public void setUpdateDt(Timestamp updateDtIn)
290 {
291 this.updateDt = updateDtIn;
292 }
293
294 private Integer remoteId;
295
296 /**
297 *
298 * @return this.remoteId Integer
299 */
300 public Integer getRemoteId()
301 {
302 return this.remoteId;
303 }
304
305 /**
306 *
307 * @param remoteIdIn Integer
308 */
309 public void setRemoteId(Integer remoteIdIn)
310 {
311 this.remoteId = remoteIdIn;
312 }
313
314 // Generate 8 associations
315 private MonitoringLocation monitoringLocation;
316
317 /**
318 * Liste les lieux associés aux programmes de surveillance.
319 * @return this.monitoringLocation MonitoringLocation
320 */
321 public MonitoringLocation getMonitoringLocation()
322 {
323 return this.monitoringLocation;
324 }
325
326 /**
327 * Liste les lieux associés aux programmes de surveillance.
328 * @param monitoringLocationIn MonitoringLocation
329 */
330 public void setMonitoringLocation(MonitoringLocation monitoringLocationIn)
331 {
332 this.monitoringLocation = monitoringLocationIn;
333 }
334
335 private BreedingSystem breedingSystem;
336
337 /**
338 * Système d'élevage
339 * C'est l'ensemble des contenants (des enceintes) ou des supports de mollusques. Exemple = la
340 * poche,
341 * la corde, le casier, etc..
342 * @return this.breedingSystem BreedingSystem
343 */
344 public BreedingSystem getBreedingSystem()
345 {
346 return this.breedingSystem;
347 }
348
349 /**
350 * Système d'élevage
351 * C'est l'ensemble des contenants (des enceintes) ou des supports de mollusques. Exemple = la
352 * poche,
353 * la corde, le casier, etc..
354 * @param breedingSystemIn BreedingSystem
355 */
356 public void setBreedingSystem(BreedingSystem breedingSystemIn)
357 {
358 this.breedingSystem = breedingSystemIn;
359 }
360
361 private Collection<SamplingOperation> samplingOperations = new HashSet<SamplingOperation>();
362
363 /**
364 * Liste les prélévements effectués lors d'un passage.
365 * @return this.samplingOperations Collection<SamplingOperation>
366 */
367 public Collection<SamplingOperation> getSamplingOperations()
368 {
369 return this.samplingOperations;
370 }
371
372 /**
373 * Liste les prélévements effectués lors d'un passage.
374 * @param samplingOperationsIn Collection<SamplingOperation>
375 */
376 public void setSamplingOperations(Collection<SamplingOperation> samplingOperationsIn)
377 {
378 this.samplingOperations = samplingOperationsIn;
379 }
380
381 /**
382 * Liste les prélévements effectués lors d'un passage.
383 * @param elementToAdd SamplingOperation
384 * @return <tt>true</tt> if this collection changed as a result of the
385 * call
386 */
387 public boolean addSamplingOperations(SamplingOperation elementToAdd)
388 {
389 return this.samplingOperations.add(elementToAdd);
390 }
391
392 /**
393 * Liste les prélévements effectués lors d'un passage.
394 * @param elementToRemove SamplingOperation
395 * @return <tt>true</tt> if this collection changed as a result of the
396 * call
397 */
398 public boolean removeSamplingOperations(SamplingOperation elementToRemove)
399 {
400 return this.samplingOperations.remove(elementToRemove);
401 }
402
403 private BreedingStructure breedingStructure;
404
405 /**
406 * Structure d'élevage
407 * C'est l'ensemble des structures qui tiennent les systèmes. Exemple : la filière, la table,
408 * le
409 * bouchot, etc..
410 * @return this.breedingStructure BreedingStructure
411 */
412 public BreedingStructure getBreedingStructure()
413 {
414 return this.breedingStructure;
415 }
416
417 /**
418 * Structure d'élevage
419 * C'est l'ensemble des structures qui tiennent les systèmes. Exemple : la filière, la table,
420 * le
421 * bouchot, etc..
422 * @param breedingStructureIn BreedingStructure
423 */
424 public void setBreedingStructure(BreedingStructure breedingStructureIn)
425 {
426 this.breedingStructure = breedingStructureIn;
427 }
428
429 private DepthLevel depthLevel;
430
431 /**
432 * Liste des niveaux auxquels les prélèvements peuvent être effectués.
433 * @return this.depthLevel DepthLevel
434 */
435 public DepthLevel getDepthLevel()
436 {
437 return this.depthLevel;
438 }
439
440 /**
441 * Liste des niveaux auxquels les prélèvements peuvent être effectués.
442 * @param depthLevelIn DepthLevel
443 */
444 public void setDepthLevel(DepthLevel depthLevelIn)
445 {
446 this.depthLevel = depthLevelIn;
447 }
448
449 private InitialPopulation initialPopulation;
450
451 /**
452 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
453 * paramètres sur une même population de mollusques répartis en lots sur le littoral français.
454 * Cela
455 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de
456 * mollusques, que
457 * l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
458 * sur
459 * différents lieux de mesures.
460 * @return this.initialPopulation InitialPopulation
461 */
462 public InitialPopulation getInitialPopulation()
463 {
464 return this.initialPopulation;
465 }
466
467 /**
468 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
469 * paramètres sur une même population de mollusques répartis en lots sur le littoral français.
470 * Cela
471 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de
472 * mollusques, que
473 * l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
474 * sur
475 * différents lieux de mesures.
476 * @param initialPopulationIn InitialPopulation
477 */
478 public void setInitialPopulation(InitialPopulation initialPopulationIn)
479 {
480 this.initialPopulation = initialPopulationIn;
481 }
482
483 private Collection<InitialPopulation> initialPopulations = new HashSet<InitialPopulation>();
484
485 /**
486 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
487 * paramètres sur une même population de mollusques répartis en lots sur le littoral français.
488 * Cela
489 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de
490 * mollusques, que
491 * l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
492 * sur
493 * différents lieux de mesures.
494 * @return this.initialPopulations Collection<InitialPopulation>
495 */
496 public Collection<InitialPopulation> getInitialPopulations()
497 {
498 return this.initialPopulations;
499 }
500
501 /**
502 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
503 * paramètres sur une même population de mollusques répartis en lots sur le littoral français.
504 * Cela
505 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de
506 * mollusques, que
507 * l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
508 * sur
509 * différents lieux de mesures.
510 * @param initialPopulationsIn Collection<InitialPopulation>
511 */
512 public void setInitialPopulations(Collection<InitialPopulation> initialPopulationsIn)
513 {
514 this.initialPopulations = initialPopulationsIn;
515 }
516
517 /**
518 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
519 * paramètres sur une même population de mollusques répartis en lots sur le littoral français.
520 * Cela
521 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de
522 * mollusques, que
523 * l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
524 * sur
525 * différents lieux de mesures.
526 * @param elementToAdd InitialPopulation
527 * @return <tt>true</tt> if this collection changed as a result of the
528 * call
529 */
530 public boolean addInitialPopulations(InitialPopulation elementToAdd)
531 {
532 return this.initialPopulations.add(elementToAdd);
533 }
534
535 /**
536 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
537 * paramètres sur une même population de mollusques répartis en lots sur le littoral français.
538 * Cela
539 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de
540 * mollusques, que
541 * l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
542 * sur
543 * différents lieux de mesures.
544 * @param elementToRemove InitialPopulation
545 * @return <tt>true</tt> if this collection changed as a result of the
546 * call
547 */
548 public boolean removeInitialPopulations(InitialPopulation elementToRemove)
549 {
550 return this.initialPopulations.remove(elementToRemove);
551 }
552
553 private QualityFlag qualityFlag;
554
555 /**
556 * Liste des niveaux de qualification.
557 * @return this.qualityFlag QualityFlag
558 */
559 public QualityFlag getQualityFlag()
560 {
561 return this.qualityFlag;
562 }
563
564 /**
565 * Liste des niveaux de qualification.
566 * @param qualityFlagIn QualityFlag
567 */
568 public void setQualityFlag(QualityFlag qualityFlagIn)
569 {
570 this.qualityFlag = qualityFlagIn;
571 }
572
573 /**
574 * Returns <code>true</code> if the argument is an Batch instance and all identifiers for this entity
575 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise.
576 */
577 @Override
578 public boolean equals(Object object)
579 {
580 if (this == object)
581 {
582 return true;
583 }
584 if (!(object instanceof Batch))
585 {
586 return false;
587 }
588 final Batch that = (Batch)object;
589 if (this.batchId == null || that.getBatchId() == null || !this.batchId.equals(that.getBatchId()))
590 {
591 return false;
592 }
593 return true;
594 }
595
596 /**
597 * Returns a hash code based on this entity's identifiers.
598 */
599 @Override
600 public int hashCode()
601 {
602 int hashCode = 0;
603 hashCode = 29 * hashCode + (this.batchId == null ? 0 : this.batchId.hashCode());
604
605 return hashCode;
606 }
607
608 /**
609 * Constructs new instances of {@link Batch}.
610 */
611 public static final class Factory
612 {
613 /**
614 * Constructs a new instance of {@link Batch}.
615 * @return new BatchImpl()
616 */
617 public static Batch newInstance()
618 {
619 return new BatchImpl();
620 }
621
622 /**
623 * Constructs a new instance of {@link Batch}, taking all required and/or
624 * read-only properties as arguments, except for identifiers.
625 * @param batchNm String
626 * @param batchLb String
627 * @param monitoringLocation MonitoringLocation
628 * @param breedingSystem BreedingSystem
629 * @param breedingStructure BreedingStructure
630 * @param initialPopulation InitialPopulation
631 * @param qualityFlag QualityFlag
632 * @return newInstance
633 */
634 public static Batch newInstance(String batchNm, String batchLb, MonitoringLocation monitoringLocation, BreedingSystem breedingSystem, BreedingStructure breedingStructure, InitialPopulation initialPopulation, QualityFlag qualityFlag)
635 {
636 final Batch entity = new BatchImpl();
637 entity.setBatchNm(batchNm);
638 entity.setBatchLb(batchLb);
639 entity.setMonitoringLocation(monitoringLocation);
640 entity.setBreedingSystem(breedingSystem);
641 entity.setBreedingStructure(breedingStructure);
642 entity.setInitialPopulation(initialPopulation);
643 entity.setQualityFlag(qualityFlag);
644 return entity;
645 }
646
647 /**
648 * Constructs a new instance of {@link Batch}, taking all possible properties
649 * (except the identifier(s))as arguments.
650 * @param batchNm String
651 * @param batchLb String
652 * @param batchExperCond String
653 * @param batchBreedingStructurUnit Integer
654 * @param batchBreedingSystemUnit Integer
655 * @param batchCm String
656 * @param batchControlDt Date
657 * @param batchValidDt Date
658 * @param batchQualifDt Date
659 * @param batchQualifCm String
660 * @param updateDt Timestamp
661 * @param remoteId Integer
662 * @param monitoringLocation MonitoringLocation
663 * @param breedingSystem BreedingSystem
664 * @param samplingOperations Collection<SamplingOperation>
665 * @param breedingStructure BreedingStructure
666 * @param depthLevel DepthLevel
667 * @param initialPopulation InitialPopulation
668 * @param initialPopulations Collection<InitialPopulation>
669 * @param qualityFlag QualityFlag
670 * @return newInstance Batch
671 */
672 public static Batch newInstance(String batchNm, String batchLb, String batchExperCond, Integer batchBreedingStructurUnit, Integer batchBreedingSystemUnit, String batchCm, Date batchControlDt, Date batchValidDt, Date batchQualifDt, String batchQualifCm, Timestamp updateDt, Integer remoteId, MonitoringLocation monitoringLocation, BreedingSystem breedingSystem, Collection<SamplingOperation> samplingOperations, BreedingStructure breedingStructure, DepthLevel depthLevel, InitialPopulation initialPopulation, Collection<InitialPopulation> initialPopulations, QualityFlag qualityFlag)
673 {
674 final Batch entity = new BatchImpl();
675 entity.setBatchNm(batchNm);
676 entity.setBatchLb(batchLb);
677 entity.setBatchExperCond(batchExperCond);
678 entity.setBatchBreedingStructurUnit(batchBreedingStructurUnit);
679 entity.setBatchBreedingSystemUnit(batchBreedingSystemUnit);
680 entity.setBatchCm(batchCm);
681 entity.setBatchControlDt(batchControlDt);
682 entity.setBatchValidDt(batchValidDt);
683 entity.setBatchQualifDt(batchQualifDt);
684 entity.setBatchQualifCm(batchQualifCm);
685 entity.setUpdateDt(updateDt);
686 entity.setRemoteId(remoteId);
687 entity.setMonitoringLocation(monitoringLocation);
688 entity.setBreedingSystem(breedingSystem);
689 entity.setSamplingOperations(samplingOperations);
690 entity.setBreedingStructure(breedingStructure);
691 entity.setDepthLevel(depthLevel);
692 entity.setInitialPopulation(initialPopulation);
693 entity.setInitialPopulations(initialPopulations);
694 entity.setQualityFlag(qualityFlag);
695 return entity;
696 }
697 }
698
699 /**
700 * @see Comparable#compareTo
701 */
702 public int compareTo(Batch o)
703 {
704 int cmp = 0;
705 if (this.getBatchId() != null)
706 {
707 cmp = this.getBatchId().compareTo(o.getBatchId());
708 }
709 else
710 {
711 if (this.getBatchNm() != null)
712 {
713 cmp = (cmp != 0 ? cmp : this.getBatchNm().compareTo(o.getBatchNm()));
714 }
715 if (this.getBatchLb() != null)
716 {
717 cmp = (cmp != 0 ? cmp : this.getBatchLb().compareTo(o.getBatchLb()));
718 }
719 if (this.getBatchExperCond() != null)
720 {
721 cmp = (cmp != 0 ? cmp : this.getBatchExperCond().compareTo(o.getBatchExperCond()));
722 }
723 if (this.getBatchBreedingStructurUnit() != null)
724 {
725 cmp = (cmp != 0 ? cmp : this.getBatchBreedingStructurUnit().compareTo(o.getBatchBreedingStructurUnit()));
726 }
727 if (this.getBatchBreedingSystemUnit() != null)
728 {
729 cmp = (cmp != 0 ? cmp : this.getBatchBreedingSystemUnit().compareTo(o.getBatchBreedingSystemUnit()));
730 }
731 if (this.getBatchCm() != null)
732 {
733 cmp = (cmp != 0 ? cmp : this.getBatchCm().compareTo(o.getBatchCm()));
734 }
735 if (this.getBatchControlDt() != null)
736 {
737 cmp = (cmp != 0 ? cmp : this.getBatchControlDt().compareTo(o.getBatchControlDt()));
738 }
739 if (this.getBatchValidDt() != null)
740 {
741 cmp = (cmp != 0 ? cmp : this.getBatchValidDt().compareTo(o.getBatchValidDt()));
742 }
743 if (this.getBatchQualifDt() != null)
744 {
745 cmp = (cmp != 0 ? cmp : this.getBatchQualifDt().compareTo(o.getBatchQualifDt()));
746 }
747 if (this.getBatchQualifCm() != null)
748 {
749 cmp = (cmp != 0 ? cmp : this.getBatchQualifCm().compareTo(o.getBatchQualifCm()));
750 }
751 if (this.getUpdateDt() != null)
752 {
753 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt()));
754 }
755 if (this.getRemoteId() != null)
756 {
757 cmp = (cmp != 0 ? cmp : this.getRemoteId().compareTo(o.getRemoteId()));
758 }
759 }
760 return cmp;
761 }
762 // HibernateEntity.vsl merge-point
763 // Batch.java merge-point
764 }