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