View Javadoc
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 }