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.administration.program.Program;
29 import fr.ifremer.quadrige3.core.dao.administration.user.Department;
30 import fr.ifremer.quadrige3.core.dao.administration.user.Quser;
31 import fr.ifremer.quadrige3.core.dao.referential.QualityFlag;
32 import fr.ifremer.quadrige3.core.dao.referential.taxon.ReferenceTaxon;
33 import java.io.Serializable;
34 import java.sql.Timestamp;
35 import java.util.Collection;
36 import java.util.Date;
37 import java.util.HashSet;
38
39 /**
40 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
41 * paramètres sur une même population de mollusques répartis en lots sur le littoral français. Cela
42 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de mollusques,
43 * que l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
44 * sur différents lieux de mesures.
45 */
46 // HibernateEntity.vsl annotations merge-point
47 public abstract class InitialPopulation
48 implements Serializable, Comparable<InitialPopulation>
49 {
50 /**
51 * The serial version UID of this class. Needed for serialization.
52 */
53 private static final long serialVersionUID = 8071304185305736785L;
54
55 // Generate 12 attributes
56 private Integer initPopId;
57
58 /**
59 * Identifiant de la population initiale
60 * @return this.initPopId Integer
61 */
62 public Integer getInitPopId()
63 {
64 return this.initPopId;
65 }
66
67 /**
68 * Identifiant de la population initiale
69 * @param initPopIdIn Integer
70 */
71 public void setInitPopId(Integer initPopIdIn)
72 {
73 this.initPopId = initPopIdIn;
74 }
75
76 private String initPopNm;
77
78 /**
79 * Libellé de la population initiale
80 * @return this.initPopNm String
81 */
82 public String getInitPopNm()
83 {
84 return this.initPopNm;
85 }
86
87 /**
88 * Libellé de la population initiale
89 * @param initPopNmIn String
90 */
91 public void setInitPopNm(String initPopNmIn)
92 {
93 this.initPopNm = initPopNmIn;
94 }
95
96 private String initPopLb;
97
98 /**
99 * Mnémonique de la population initiale
100 * @return this.initPopLb String
101 */
102 public String getInitPopLb()
103 {
104 return this.initPopLb;
105 }
106
107 /**
108 * Mnémonique de la population initiale
109 * @param initPopLbIn String
110 */
111 public void setInitPopLb(String initPopLbIn)
112 {
113 this.initPopLb = initPopLbIn;
114 }
115
116 private String initPopCm;
117
118 /**
119 * Commentaire sur la population initiale
120 * @return this.initPopCm String
121 */
122 public String getInitPopCm()
123 {
124 return this.initPopCm;
125 }
126
127 /**
128 * Commentaire sur la population initiale
129 * @param initPopCmIn String
130 */
131 public void setInitPopCm(String initPopCmIn)
132 {
133 this.initPopCm = initPopCmIn;
134 }
135
136 private Date initPopQualifDt;
137
138 /**
139 * Date de qualification de la population initiale
140 * @return this.initPopQualifDt Date
141 */
142 public Date getInitPopQualifDt()
143 {
144 return this.initPopQualifDt;
145 }
146
147 /**
148 * Date de qualification de la population initiale
149 * @param initPopQualifDtIn Date
150 */
151 public void setInitPopQualifDt(Date initPopQualifDtIn)
152 {
153 this.initPopQualifDt = initPopQualifDtIn;
154 }
155
156 private String initPopQualifCm;
157
158 /**
159 * Commentaire de qualification de la population initiale
160 * @return this.initPopQualifCm String
161 */
162 public String getInitPopQualifCm()
163 {
164 return this.initPopQualifCm;
165 }
166
167 /**
168 * Commentaire de qualification de la population initiale
169 * @param initPopQualifCmIn String
170 */
171 public void setInitPopQualifCm(String initPopQualifCmIn)
172 {
173 this.initPopQualifCm = initPopQualifCmIn;
174 }
175
176 private Date initPopValidDt;
177
178 /**
179 * Date de validation de la population initiale
180 * @return this.initPopValidDt Date
181 */
182 public Date getInitPopValidDt()
183 {
184 return this.initPopValidDt;
185 }
186
187 /**
188 * Date de validation de la population initiale
189 * @param initPopValidDtIn Date
190 */
191 public void setInitPopValidDt(Date initPopValidDtIn)
192 {
193 this.initPopValidDt = initPopValidDtIn;
194 }
195
196 private Date initPopControlDt;
197
198 /**
199 * Date de controle de la population initiale
200 * @return this.initPopControlDt Date
201 */
202 public Date getInitPopControlDt()
203 {
204 return this.initPopControlDt;
205 }
206
207 /**
208 * Date de controle de la population initiale
209 * @param initPopControlDtIn Date
210 */
211 public void setInitPopControlDt(Date initPopControlDtIn)
212 {
213 this.initPopControlDt = initPopControlDtIn;
214 }
215
216 private Date initPopStartDt;
217
218 /**
219 * Date de mise à disposition de la population initiale
220 * @return this.initPopStartDt Date
221 */
222 public Date getInitPopStartDt()
223 {
224 return this.initPopStartDt;
225 }
226
227 /**
228 * Date de mise à disposition de la population initiale
229 * @param initPopStartDtIn Date
230 */
231 public void setInitPopStartDt(Date initPopStartDtIn)
232 {
233 this.initPopStartDt = initPopStartDtIn;
234 }
235
236 private Integer initPopBiometricIndivNb;
237
238 /**
239 * Nombre d'individus pour les mesures de biométrie
240 * @return this.initPopBiometricIndivNb Integer
241 */
242 public Integer getInitPopBiometricIndivNb()
243 {
244 return this.initPopBiometricIndivNb;
245 }
246
247 /**
248 * Nombre d'individus pour les mesures de biométrie
249 * @param initPopBiometricIndivNbIn Integer
250 */
251 public void setInitPopBiometricIndivNb(Integer initPopBiometricIndivNbIn)
252 {
253 this.initPopBiometricIndivNb = initPopBiometricIndivNbIn;
254 }
255
256 private Timestamp updateDt;
257
258 /**
259 * Date de maj
260 * @return this.updateDt Timestamp
261 */
262 public Timestamp getUpdateDt()
263 {
264 return this.updateDt;
265 }
266
267 /**
268 * Date de maj
269 * @param updateDtIn Timestamp
270 */
271 public void setUpdateDt(Timestamp updateDtIn)
272 {
273 this.updateDt = updateDtIn;
274 }
275
276 private Integer remoteId;
277
278 /**
279 *
280 * @return this.remoteId Integer
281 */
282 public Integer getRemoteId()
283 {
284 return this.remoteId;
285 }
286
287 /**
288 *
289 * @param remoteIdIn Integer
290 */
291 public void setRemoteId(Integer remoteIdIn)
292 {
293 this.remoteId = remoteIdIn;
294 }
295
296 // Generate 10 associations
297 private Ploidy ploidy;
298
299 /**
300 * La ploïdie d'une cellule caractérise le nombre et l'organisation de ses chromosomes
301 * @return this.ploidy Ploidy
302 */
303 public Ploidy getPloidy()
304 {
305 return this.ploidy;
306 }
307
308 /**
309 * La ploïdie d'une cellule caractérise le nombre et l'organisation de ses chromosomes
310 * @param ploidyIn Ploidy
311 */
312 public void setPloidy(Ploidy ploidyIn)
313 {
314 this.ploidy = ploidyIn;
315 }
316
317 private Collection<Department> departments = new HashSet<Department>();
318
319 /**
320 * Liste les départements ou services auxquels sont rattachés les agents
321 * @return this.departments Collection<Department>
322 */
323 public Collection<Department> getDepartments()
324 {
325 return this.departments;
326 }
327
328 /**
329 * Liste les départements ou services auxquels sont rattachés les agents
330 * @param departmentsIn Collection<Department>
331 */
332 public void setDepartments(Collection<Department> departmentsIn)
333 {
334 this.departments = departmentsIn;
335 }
336
337 /**
338 * Liste les départements ou services auxquels sont rattachés les agents
339 * @param elementToAdd Department
340 * @return <tt>true</tt> if this collection changed as a result of the
341 * call
342 */
343 public boolean addDepartments(Department elementToAdd)
344 {
345 return this.departments.add(elementToAdd);
346 }
347
348 /**
349 * Liste les départements ou services auxquels sont rattachés les agents
350 * @param elementToRemove Department
351 * @return <tt>true</tt> if this collection changed as a result of the
352 * call
353 */
354 public boolean removeDepartments(Department elementToRemove)
355 {
356 return this.departments.remove(elementToRemove);
357 }
358
359 private Collection<HistoricalAccount> historicalAccounts = new HashSet<HistoricalAccount>();
360
361 /**
362 * Ligne d'historique
363 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
364 * étude. Ce
365 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
366 * ligne
367 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
368 * début de
369 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
370 * type de
371 * phase d'élevag
372 * @return this.historicalAccounts Collection<HistoricalAccount>
373 */
374 public Collection<HistoricalAccount> getHistoricalAccounts()
375 {
376 return this.historicalAccounts;
377 }
378
379 /**
380 * Ligne d'historique
381 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
382 * étude. Ce
383 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
384 * ligne
385 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
386 * début de
387 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
388 * type de
389 * phase d'élevag
390 * @param historicalAccountsIn Collection<HistoricalAccount>
391 */
392 public void setHistoricalAccounts(Collection<HistoricalAccount> historicalAccountsIn)
393 {
394 this.historicalAccounts = historicalAccountsIn;
395 }
396
397 /**
398 * Ligne d'historique
399 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
400 * étude. Ce
401 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
402 * ligne
403 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
404 * début de
405 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
406 * type de
407 * phase d'élevag
408 * @param elementToAdd HistoricalAccount
409 * @return <tt>true</tt> if this collection changed as a result of the
410 * call
411 */
412 public boolean addHistoricalAccounts(HistoricalAccount elementToAdd)
413 {
414 return this.historicalAccounts.add(elementToAdd);
415 }
416
417 /**
418 * Ligne d'historique
419 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
420 * étude. Ce
421 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
422 * ligne
423 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
424 * début de
425 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
426 * type de
427 * phase d'élevag
428 * @param elementToRemove HistoricalAccount
429 * @return <tt>true</tt> if this collection changed as a result of the
430 * call
431 */
432 public boolean removeHistoricalAccounts(HistoricalAccount elementToRemove)
433 {
434 return this.historicalAccounts.remove(elementToRemove);
435 }
436
437 private Collection<Program> programs = new HashSet<Program>();
438
439 /**
440 * Activités à l'origine de la collecte d'un ensemble cohérent de données.
441 * @return this.programs Collection<Program>
442 */
443 public Collection<Program> getPrograms()
444 {
445 return this.programs;
446 }
447
448 /**
449 * Activités à l'origine de la collecte d'un ensemble cohérent de données.
450 * @param programsIn Collection<Program>
451 */
452 public void setPrograms(Collection<Program> programsIn)
453 {
454 this.programs = programsIn;
455 }
456
457 /**
458 * Activités à l'origine de la collecte d'un ensemble cohérent de données.
459 * @param elementToAdd Program
460 * @return <tt>true</tt> if this collection changed as a result of the
461 * call
462 */
463 public boolean addPrograms(Program elementToAdd)
464 {
465 return this.programs.add(elementToAdd);
466 }
467
468 /**
469 * Activités à l'origine de la collecte d'un ensemble cohérent de données.
470 * @param elementToRemove Program
471 * @return <tt>true</tt> if this collection changed as a result of the
472 * call
473 */
474 public boolean removePrograms(Program elementToRemove)
475 {
476 return this.programs.remove(elementToRemove);
477 }
478
479 private QualityFlag qualityFlag;
480
481 /**
482 * Liste des niveaux de qualification.
483 * @return this.qualityFlag QualityFlag
484 */
485 public QualityFlag getQualityFlag()
486 {
487 return this.qualityFlag;
488 }
489
490 /**
491 * Liste des niveaux de qualification.
492 * @param qualityFlagIn QualityFlag
493 */
494 public void setQualityFlag(QualityFlag qualityFlagIn)
495 {
496 this.qualityFlag = qualityFlagIn;
497 }
498
499 private ReferenceTaxon referenceTaxon;
500
501 /**
502 * Liste des taxons qui sont la référence.
503 * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment
504 * et ne
505 * plus l'être par la suite.
506 * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont
507 * référents à un moment mais ne peuvent plus l'être par la suite.
508 * Le fonctionnement dans la table TAXON_NAME est le suivant :
509 * - REF_TAXON_ID est toujours renseigné
510 * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il
511 * s'agit d'un
512 * taxon virtuel)
513 * - sinon c'est un synonyme
514 * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le
515 * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID
516 * NB : c'était le comportement initialement prévu.
517 * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2,
518 * le taxon
519 * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes
520 * et les
521 * résultats qu'il pouvait avoir).
522 * Ce mécanisme a été adopté car il fallait distinguer 2 cas :
523 * 1- cas d'un taxon référent T1-R1 qui devient synonyme d'un référent qu'on crée T2 : on aurait
524 * alors
525 * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres
526 * synonymes, résultats...
527 * 2- cas d'un taxon référent T1-R1 qui devient synonyme d'un référent qui existe déjà T2-R2 (et
528 * qui
529 * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1
530 * pour
531 * R2 est nécessaire
532 * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on
533 * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les
534 * référents
535 * @return this.referenceTaxon ReferenceTaxon
536 */
537 public ReferenceTaxon getReferenceTaxon()
538 {
539 return this.referenceTaxon;
540 }
541
542 /**
543 * Liste des taxons qui sont la référence.
544 * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment
545 * et ne
546 * plus l'être par la suite.
547 * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont
548 * référents à un moment mais ne peuvent plus l'être par la suite.
549 * Le fonctionnement dans la table TAXON_NAME est le suivant :
550 * - REF_TAXON_ID est toujours renseigné
551 * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il
552 * s'agit d'un
553 * taxon virtuel)
554 * - sinon c'est un synonyme
555 * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le
556 * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID
557 * NB : c'était le comportement initialement prévu.
558 * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2,
559 * le taxon
560 * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes
561 * et les
562 * résultats qu'il pouvait avoir).
563 * Ce mécanisme a été adopté car il fallait distinguer 2 cas :
564 * 1- cas d'un taxon référent T1-R1 qui devient synonyme d'un référent qu'on crée T2 : on aurait
565 * alors
566 * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres
567 * synonymes, résultats...
568 * 2- cas d'un taxon référent T1-R1 qui devient synonyme d'un référent qui existe déjà T2-R2 (et
569 * qui
570 * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1
571 * pour
572 * R2 est nécessaire
573 * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on
574 * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les
575 * référents
576 * @param referenceTaxonIn ReferenceTaxon
577 */
578 public void setReferenceTaxon(ReferenceTaxon referenceTaxonIn)
579 {
580 this.referenceTaxon = referenceTaxonIn;
581 }
582
583 private Collection<Batch> batches = new HashSet<Batch>();
584
585 /**
586 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
587 * dans
588 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
589 * une
590 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
591 * structure)
592 * * un niveau Ce lot de mollusques est positionné sur le terrain.
593 * @return this.batches Collection<Batch>
594 */
595 public Collection<Batch> getBatches()
596 {
597 return this.batches;
598 }
599
600 /**
601 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
602 * dans
603 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
604 * une
605 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
606 * structure)
607 * * un niveau Ce lot de mollusques est positionné sur le terrain.
608 * @param batchesIn Collection<Batch>
609 */
610 public void setBatches(Collection<Batch> batchesIn)
611 {
612 this.batches = batchesIn;
613 }
614
615 /**
616 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
617 * dans
618 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
619 * une
620 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
621 * structure)
622 * * un niveau Ce lot de mollusques est positionné sur le terrain.
623 * @param elementToAdd Batch
624 * @return <tt>true</tt> if this collection changed as a result of the
625 * call
626 */
627 public boolean addBatches(Batch elementToAdd)
628 {
629 return this.batches.add(elementToAdd);
630 }
631
632 /**
633 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
634 * dans
635 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
636 * une
637 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
638 * structure)
639 * * un niveau Ce lot de mollusques est positionné sur le terrain.
640 * @param elementToRemove Batch
641 * @return <tt>true</tt> if this collection changed as a result of the
642 * call
643 */
644 public boolean removeBatches(Batch elementToRemove)
645 {
646 return this.batches.remove(elementToRemove);
647 }
648
649 private AgeGroup ageGroup;
650
651 /**
652 * Classe d'âge d'une population initiale
653 * @return this.ageGroup AgeGroup
654 */
655 public AgeGroup getAgeGroup()
656 {
657 return this.ageGroup;
658 }
659
660 /**
661 * Classe d'âge d'une population initiale
662 * @param ageGroupIn AgeGroup
663 */
664 public void setAgeGroup(AgeGroup ageGroupIn)
665 {
666 this.ageGroup = ageGroupIn;
667 }
668
669 private Collection<Quser> qusers = new HashSet<Quser>();
670
671 /**
672 * Liste l'ensemble des agents et utilisateurs du système.
673 * @return this.qusers Collection<Quser>
674 */
675 public Collection<Quser> getQusers()
676 {
677 return this.qusers;
678 }
679
680 /**
681 * Liste l'ensemble des agents et utilisateurs du système.
682 * @param qusersIn Collection<Quser>
683 */
684 public void setQusers(Collection<Quser> qusersIn)
685 {
686 this.qusers = qusersIn;
687 }
688
689 /**
690 * Liste l'ensemble des agents et utilisateurs du système.
691 * @param elementToAdd Quser
692 * @return <tt>true</tt> if this collection changed as a result of the
693 * call
694 */
695 public boolean addQusers(Quser elementToAdd)
696 {
697 return this.qusers.add(elementToAdd);
698 }
699
700 /**
701 * Liste l'ensemble des agents et utilisateurs du système.
702 * @param elementToRemove Quser
703 * @return <tt>true</tt> if this collection changed as a result of the
704 * call
705 */
706 public boolean removeQusers(Quser elementToRemove)
707 {
708 return this.qusers.remove(elementToRemove);
709 }
710
711 /**
712 * Returns <code>true</code> if the argument is an InitialPopulation instance and all identifiers for this entity
713 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise.
714 */
715 @Override
716 public boolean equals(Object object)
717 {
718 if (this == object)
719 {
720 return true;
721 }
722 if (!(object instanceof InitialPopulation))
723 {
724 return false;
725 }
726 final InitialPopulation that = (InitialPopulation)object;
727 if (this.initPopId == null || that.getInitPopId() == null || !this.initPopId.equals(that.getInitPopId()))
728 {
729 return false;
730 }
731 return true;
732 }
733
734 /**
735 * Returns a hash code based on this entity's identifiers.
736 */
737 @Override
738 public int hashCode()
739 {
740 int hashCode = 0;
741 hashCode = 29 * hashCode + (this.initPopId == null ? 0 : this.initPopId.hashCode());
742
743 return hashCode;
744 }
745
746 /**
747 * Constructs new instances of {@link InitialPopulation}.
748 */
749 public static final class Factory
750 {
751 /**
752 * Constructs a new instance of {@link InitialPopulation}.
753 * @return new InitialPopulationImpl()
754 */
755 public static InitialPopulation newInstance()
756 {
757 return new InitialPopulationImpl();
758 }
759
760 /**
761 * Constructs a new instance of {@link InitialPopulation}, taking all required and/or
762 * read-only properties as arguments, except for identifiers.
763 * @param initPopNm String
764 * @param initPopLb String
765 * @param initPopStartDt Date
766 * @param initPopBiometricIndivNb Integer
767 * @param qualityFlag QualityFlag
768 * @param referenceTaxon ReferenceTaxon
769 * @param ageGroup AgeGroup
770 * @return newInstance
771 */
772 public static InitialPopulation newInstance(String initPopNm, String initPopLb, Date initPopStartDt, Integer initPopBiometricIndivNb, QualityFlag qualityFlag, ReferenceTaxon referenceTaxon, AgeGroup ageGroup)
773 {
774 final InitialPopulation entity = new InitialPopulationImpl();
775 entity.setInitPopNm(initPopNm);
776 entity.setInitPopLb(initPopLb);
777 entity.setInitPopStartDt(initPopStartDt);
778 entity.setInitPopBiometricIndivNb(initPopBiometricIndivNb);
779 entity.setQualityFlag(qualityFlag);
780 entity.setReferenceTaxon(referenceTaxon);
781 entity.setAgeGroup(ageGroup);
782 return entity;
783 }
784
785 /**
786 * Constructs a new instance of {@link InitialPopulation}, taking all possible properties
787 * (except the identifier(s))as arguments.
788 * @param initPopNm String
789 * @param initPopLb String
790 * @param initPopCm String
791 * @param initPopQualifDt Date
792 * @param initPopQualifCm String
793 * @param initPopValidDt Date
794 * @param initPopControlDt Date
795 * @param initPopStartDt Date
796 * @param initPopBiometricIndivNb Integer
797 * @param updateDt Timestamp
798 * @param remoteId Integer
799 * @param ploidy Ploidy
800 * @param departments Collection<Department>
801 * @param historicalAccounts Collection<HistoricalAccount>
802 * @param programs Collection<Program>
803 * @param qualityFlag QualityFlag
804 * @param referenceTaxon ReferenceTaxon
805 * @param batches Collection<Batch>
806 * @param ageGroup AgeGroup
807 * @param qusers Collection<Quser>
808 * @return newInstance InitialPopulation
809 */
810 public static InitialPopulation newInstance(String initPopNm, String initPopLb, String initPopCm, Date initPopQualifDt, String initPopQualifCm, Date initPopValidDt, Date initPopControlDt, Date initPopStartDt, Integer initPopBiometricIndivNb, Timestamp updateDt, Integer remoteId, Ploidy ploidy, Collection<Department> departments, Collection<HistoricalAccount> historicalAccounts, Collection<Program> programs, QualityFlag qualityFlag, ReferenceTaxon referenceTaxon, Collection<Batch> batches, AgeGroup ageGroup, Collection<Quser> qusers)
811 {
812 final InitialPopulation entity = new InitialPopulationImpl();
813 entity.setInitPopNm(initPopNm);
814 entity.setInitPopLb(initPopLb);
815 entity.setInitPopCm(initPopCm);
816 entity.setInitPopQualifDt(initPopQualifDt);
817 entity.setInitPopQualifCm(initPopQualifCm);
818 entity.setInitPopValidDt(initPopValidDt);
819 entity.setInitPopControlDt(initPopControlDt);
820 entity.setInitPopStartDt(initPopStartDt);
821 entity.setInitPopBiometricIndivNb(initPopBiometricIndivNb);
822 entity.setUpdateDt(updateDt);
823 entity.setRemoteId(remoteId);
824 entity.setPloidy(ploidy);
825 entity.setDepartments(departments);
826 entity.setHistoricalAccounts(historicalAccounts);
827 entity.setPrograms(programs);
828 entity.setQualityFlag(qualityFlag);
829 entity.setReferenceTaxon(referenceTaxon);
830 entity.setBatches(batches);
831 entity.setAgeGroup(ageGroup);
832 entity.setQusers(qusers);
833 return entity;
834 }
835 }
836
837 /**
838 * @see Comparable#compareTo
839 */
840 public int compareTo(InitialPopulation o)
841 {
842 int cmp = 0;
843 if (this.getInitPopId() != null)
844 {
845 cmp = this.getInitPopId().compareTo(o.getInitPopId());
846 }
847 else
848 {
849 if (this.getInitPopNm() != null)
850 {
851 cmp = (cmp != 0 ? cmp : this.getInitPopNm().compareTo(o.getInitPopNm()));
852 }
853 if (this.getInitPopLb() != null)
854 {
855 cmp = (cmp != 0 ? cmp : this.getInitPopLb().compareTo(o.getInitPopLb()));
856 }
857 if (this.getInitPopCm() != null)
858 {
859 cmp = (cmp != 0 ? cmp : this.getInitPopCm().compareTo(o.getInitPopCm()));
860 }
861 if (this.getInitPopQualifDt() != null)
862 {
863 cmp = (cmp != 0 ? cmp : this.getInitPopQualifDt().compareTo(o.getInitPopQualifDt()));
864 }
865 if (this.getInitPopQualifCm() != null)
866 {
867 cmp = (cmp != 0 ? cmp : this.getInitPopQualifCm().compareTo(o.getInitPopQualifCm()));
868 }
869 if (this.getInitPopValidDt() != null)
870 {
871 cmp = (cmp != 0 ? cmp : this.getInitPopValidDt().compareTo(o.getInitPopValidDt()));
872 }
873 if (this.getInitPopControlDt() != null)
874 {
875 cmp = (cmp != 0 ? cmp : this.getInitPopControlDt().compareTo(o.getInitPopControlDt()));
876 }
877 if (this.getInitPopStartDt() != null)
878 {
879 cmp = (cmp != 0 ? cmp : this.getInitPopStartDt().compareTo(o.getInitPopStartDt()));
880 }
881 if (this.getInitPopBiometricIndivNb() != null)
882 {
883 cmp = (cmp != 0 ? cmp : this.getInitPopBiometricIndivNb().compareTo(o.getInitPopBiometricIndivNb()));
884 }
885 if (this.getUpdateDt() != null)
886 {
887 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt()));
888 }
889 if (this.getRemoteId() != null)
890 {
891 cmp = (cmp != 0 ? cmp : this.getRemoteId().compareTo(o.getRemoteId()));
892 }
893 }
894 return cmp;
895 }
896 // HibernateEntity.vsl merge-point
897 // InitialPopulation.java merge-point
898 }