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.measurement;
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.data.sample.Sample;
32  import fr.ifremer.quadrige2.core.dao.data.samplingoperation.SamplingOperation;
33  import fr.ifremer.quadrige2.core.dao.data.survey.Survey;
34  import fr.ifremer.quadrige2.core.dao.referential.AnalysisInstrument;
35  import fr.ifremer.quadrige2.core.dao.referential.NumericalPrecision;
36  import fr.ifremer.quadrige2.core.dao.referential.ObjectType;
37  import fr.ifremer.quadrige2.core.dao.referential.PrecisionType;
38  import fr.ifremer.quadrige2.core.dao.referential.QualityFlag;
39  import fr.ifremer.quadrige2.core.dao.referential.pmfm.Pmfm;
40  import fr.ifremer.quadrige2.core.dao.referential.pmfm.QualitativeValue;
41  import fr.ifremer.quadrige2.core.dao.referential.taxon.ReferenceTaxon;
42  import fr.ifremer.quadrige2.core.dao.referential.taxon.TaxonGroup;
43  import java.io.Serializable;
44  import java.sql.Timestamp;
45  import java.util.Collection;
46  import java.util.Date;
47  import java.util.HashSet;
48  
49  /**
50   * Résultat de mesure faisant l'objet d'une mesure unique pour un taxon, ou un regroupement de taxon
51   * particulier.
52   */
53  // HibernateEntity.vsl annotations merge-point
54  public abstract class TaxonMeasurement
55      implements Serializable, Comparable<TaxonMeasurement>
56  {
57      /**
58       * The serial version UID of this class. Needed for serialization.
59       */
60      private static final long serialVersionUID = 7923956248027897093L;
61  
62      // Generate 18 attributes
63      private Integer taxonMeasId;
64  
65      /**
66       * Identifiant interne du résultat
67       * @return this.taxonMeasId Integer
68       */
69      public Integer getTaxonMeasId()
70      {
71          return this.taxonMeasId;
72      }
73  
74      /**
75       * Identifiant interne du résultat
76       * @param taxonMeasIdIn Integer
77       */
78      public void setTaxonMeasId(Integer taxonMeasIdIn)
79      {
80          this.taxonMeasId = taxonMeasIdIn;
81      }
82  
83      private Integer objectId;
84  
85      /**
86       * Identifiant interne de donnnée in situ de référence (passage, prélèvement, prélèvement)
87       * @return this.objectId Integer
88       */
89      public Integer getObjectId()
90      {
91          return this.objectId;
92      }
93  
94      /**
95       * Identifiant interne de donnnée in situ de référence (passage, prélèvement, prélèvement)
96       * @param objectIdIn Integer
97       */
98      public void setObjectId(Integer objectIdIn)
99      {
100         this.objectId = objectIdIn;
101     }
102 
103     private Integer taxonMeasIndivId;
104 
105     /**
106      * Le numéro de l'individu mesuré pour les résultats sur taxon ayant plusieurs individus
107      * @return this.taxonMeasIndivId Integer
108      */
109     public Integer getTaxonMeasIndivId()
110     {
111         return this.taxonMeasIndivId;
112     }
113 
114     /**
115      * Le numéro de l'individu mesuré pour les résultats sur taxon ayant plusieurs individus
116      * @param taxonMeasIndivIdIn Integer
117      */
118     public void setTaxonMeasIndivId(Integer taxonMeasIndivIdIn)
119     {
120         this.taxonMeasIndivId = taxonMeasIndivIdIn;
121     }
122 
123     private Float taxonMeasNumerValue;
124 
125     /**
126      * La valeur du résultat si elle n'est pas qualitative
127      * @return this.taxonMeasNumerValue Float
128      */
129     public Float getTaxonMeasNumerValue()
130     {
131         return this.taxonMeasNumerValue;
132     }
133 
134     /**
135      * La valeur du résultat si elle n'est pas qualitative
136      * @param taxonMeasNumerValueIn Float
137      */
138     public void setTaxonMeasNumerValue(Float taxonMeasNumerValueIn)
139     {
140         this.taxonMeasNumerValue = taxonMeasNumerValueIn;
141     }
142 
143     private Float taxonMeasPrecisionValue;
144 
145     /**
146      * La valeur de l'incertitude. Ex : 2 (%) ou 0,01 (dégrés)
147      * @return this.taxonMeasPrecisionValue Float
148      */
149     public Float getTaxonMeasPrecisionValue()
150     {
151         return this.taxonMeasPrecisionValue;
152     }
153 
154     /**
155      * La valeur de l'incertitude. Ex : 2 (%) ou 0,01 (dégrés)
156      * @param taxonMeasPrecisionValueIn Float
157      */
158     public void setTaxonMeasPrecisionValue(Float taxonMeasPrecisionValueIn)
159     {
160         this.taxonMeasPrecisionValue = taxonMeasPrecisionValueIn;
161     }
162 
163     private Double taxonMeasDigitNumber;
164 
165     /**
166      * Nombre de chiffre après la virgule du résulat. Ex : si on saisit 10.00, il faut conserver 2
167      * comme information
168      * @return this.taxonMeasDigitNumber Double
169      */
170     public Double getTaxonMeasDigitNumber()
171     {
172         return this.taxonMeasDigitNumber;
173     }
174 
175     /**
176      * Nombre de chiffre après la virgule du résulat. Ex : si on saisit 10.00, il faut conserver 2
177      * comme information
178      * @param taxonMeasDigitNumberIn Double
179      */
180     public void setTaxonMeasDigitNumber(Double taxonMeasDigitNumberIn)
181     {
182         this.taxonMeasDigitNumber = taxonMeasDigitNumberIn;
183     }
184 
185     private Date taxonMeasControlDt;
186 
187     /**
188      * Date de contrôle
189      * @return this.taxonMeasControlDt Date
190      */
191     public Date getTaxonMeasControlDt()
192     {
193         return this.taxonMeasControlDt;
194     }
195 
196     /**
197      * Date de contrôle
198      * @param taxonMeasControlDtIn Date
199      */
200     public void setTaxonMeasControlDt(Date taxonMeasControlDtIn)
201     {
202         this.taxonMeasControlDt = taxonMeasControlDtIn;
203     }
204 
205     private Date taxonMeasValidDt;
206 
207     /**
208      * Date de validation
209      * @return this.taxonMeasValidDt Date
210      */
211     public Date getTaxonMeasValidDt()
212     {
213         return this.taxonMeasValidDt;
214     }
215 
216     /**
217      * Date de validation
218      * @param taxonMeasValidDtIn Date
219      */
220     public void setTaxonMeasValidDt(Date taxonMeasValidDtIn)
221     {
222         this.taxonMeasValidDt = taxonMeasValidDtIn;
223     }
224 
225     private Date taxonMeasQualifDt;
226 
227     /**
228      * Date de la qualification du résultat
229      * @return this.taxonMeasQualifDt Date
230      */
231     public Date getTaxonMeasQualifDt()
232     {
233         return this.taxonMeasQualifDt;
234     }
235 
236     /**
237      * Date de la qualification du résultat
238      * @param taxonMeasQualifDtIn Date
239      */
240     public void setTaxonMeasQualifDt(Date taxonMeasQualifDtIn)
241     {
242         this.taxonMeasQualifDt = taxonMeasQualifDtIn;
243     }
244 
245     private String taxonMeasQualifCm;
246 
247     /**
248      * Commentaire sur la qualification du résultat
249      * Un commentaire de qualification est obligatoire si la mesure est douteuse ou mauvaise.
250      * @return this.taxonMeasQualifCm String
251      */
252     public String getTaxonMeasQualifCm()
253     {
254         return this.taxonMeasQualifCm;
255     }
256 
257     /**
258      * Commentaire sur la qualification du résultat
259      * Un commentaire de qualification est obligatoire si la mesure est douteuse ou mauvaise.
260      * @param taxonMeasQualifCmIn String
261      */
262     public void setTaxonMeasQualifCm(String taxonMeasQualifCmIn)
263     {
264         this.taxonMeasQualifCm = taxonMeasQualifCmIn;
265     }
266 
267     private String taxonMeasCm;
268 
269     /**
270      * Commentaire sur le résultat sur taxon
271      * @return this.taxonMeasCm String
272      */
273     public String getTaxonMeasCm()
274     {
275         return this.taxonMeasCm;
276     }
277 
278     /**
279      * Commentaire sur le résultat sur taxon
280      * @param taxonMeasCmIn String
281      */
282     public void setTaxonMeasCm(String taxonMeasCmIn)
283     {
284         this.taxonMeasCm = taxonMeasCmIn;
285     }
286 
287     private Timestamp updateDt;
288 
289     /**
290      * Date de modification de l'objet, mise à jour par le système
291      * @return this.updateDt Timestamp
292      */
293     public Timestamp getUpdateDt()
294     {
295         return this.updateDt;
296     }
297 
298     /**
299      * Date de modification de l'objet, mise à jour par le système
300      * @param updateDtIn Timestamp
301      */
302     public void setUpdateDt(Timestamp updateDtIn)
303     {
304         this.updateDt = updateDtIn;
305     }
306 
307     private String parCd;
308 
309     /**
310      * @deprecated (filled by synchro)
311      * @return this.parCd String
312      */
313     public String getParCd()
314     {
315         return this.parCd;
316     }
317 
318     /**
319      * @deprecated (filled by synchro)
320      * @param parCdIn String
321      */
322     public void setParCd(String parCdIn)
323     {
324         this.parCd = parCdIn;
325     }
326 
327     private Integer matrixId;
328 
329     /**
330      * @deprecated (filled by synchro)
331      * @return this.matrixId Integer
332      */
333     public Integer getMatrixId()
334     {
335         return this.matrixId;
336     }
337 
338     /**
339      * @deprecated (filled by synchro)
340      * @param matrixIdIn Integer
341      */
342     public void setMatrixId(Integer matrixIdIn)
343     {
344         this.matrixId = matrixIdIn;
345     }
346 
347     private Integer fractionId;
348 
349     /**
350      * @deprecated (filled by synchro)
351      * @return this.fractionId Integer
352      */
353     public Integer getFractionId()
354     {
355         return this.fractionId;
356     }
357 
358     /**
359      * @deprecated (filled by synchro)
360      * @param fractionIdIn Integer
361      */
362     public void setFractionId(Integer fractionIdIn)
363     {
364         this.fractionId = fractionIdIn;
365     }
366 
367     private Integer methodId;
368 
369     /**
370      * @deprecated (filled by synchro)
371      * @return this.methodId Integer
372      */
373     public Integer getMethodId()
374     {
375         return this.methodId;
376     }
377 
378     /**
379      * @deprecated (filled by synchro)
380      * @param methodIdIn Integer
381      */
382     public void setMethodId(Integer methodIdIn)
383     {
384         this.methodId = methodIdIn;
385     }
386 
387     private Integer taxonNameId;
388 
389     /**
390      * Identifiant interne du taxon cité (Utilisé par BD Recif pour stocker l'identifiant du taxon
391      * saisi par l'utilisateur)
392      * @return this.taxonNameId Integer
393      */
394     public Integer getTaxonNameId()
395     {
396         return this.taxonNameId;
397     }
398 
399     /**
400      * Identifiant interne du taxon cité (Utilisé par BD Recif pour stocker l'identifiant du taxon
401      * saisi par l'utilisateur)
402      * @param taxonNameIdIn Integer
403      */
404     public void setTaxonNameId(Integer taxonNameIdIn)
405     {
406         this.taxonNameId = taxonNameIdIn;
407     }
408 
409     private String taxonNameNm;
410 
411     /**
412      * Nom scientifique du taxon cité (Utilisé par BD Recif pour stocker le libellé du taxon saisi
413      * par l'utilisateur)
414      * @return this.taxonNameNm String
415      */
416     public String getTaxonNameNm()
417     {
418         return this.taxonNameNm;
419     }
420 
421     /**
422      * Nom scientifique du taxon cité (Utilisé par BD Recif pour stocker le libellé du taxon saisi
423      * par l'utilisateur)
424      * @param taxonNameNmIn String
425      */
426     public void setTaxonNameNm(String taxonNameNmIn)
427     {
428         this.taxonNameNm = taxonNameNmIn;
429     }
430 
431     // Generate 15 associations
432     private Sample sample;
433 
434     /**
435      * Liste les échantillons prélevés lors d'un passage sur un lieu de surveillance.
436      * @return this.sample Sample
437      */
438     public Sample getSample()
439     {
440         return this.sample;
441     }
442 
443     /**
444      * Liste les échantillons prélevés lors d'un passage sur un lieu de surveillance.
445      * @param sampleIn Sample
446      */
447     public void setSample(Sample sampleIn)
448     {
449         this.sample = sampleIn;
450     }
451 
452     private TaxonGroup taxonGroup;
453 
454     /**
455      * Liste l'ensemble de taxons ayant les mêmes caractéristiques pour le critère pris en compte.
456      * @return this.taxonGroup TaxonGroup
457      */
458     public TaxonGroup getTaxonGroup()
459     {
460         return this.taxonGroup;
461     }
462 
463     /**
464      * Liste l'ensemble de taxons ayant les mêmes caractéristiques pour le critère pris en compte.
465      * @param taxonGroupIn TaxonGroup
466      */
467     public void setTaxonGroup(TaxonGroup taxonGroupIn)
468     {
469         this.taxonGroup = taxonGroupIn;
470     }
471 
472     private Pmfm pmfm;
473 
474     /**
475      * Liste les quadruplets paramètre, méthode, support, fraction.
476      * @return this.pmfm Pmfm
477      */
478     public Pmfm getPmfm()
479     {
480         return this.pmfm;
481     }
482 
483     /**
484      * Liste les quadruplets paramètre, méthode, support, fraction.
485      * @param pmfmIn Pmfm
486      */
487     public void setPmfm(Pmfm pmfmIn)
488     {
489         this.pmfm = pmfmIn;
490     }
491 
492     private ReferenceTaxon referenceTaxon;
493 
494     /**
495      * Liste des taxons qui sont la référence.
496      * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment
497      * et ne
498      * plus l'être par la suite.
499      * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont
500      * référents à un moment mais ne peuvent plus l'être par la suite.
501      * Le fonctionnement dans la table TAXON_NAME est le suivant :
502      * - REF_TAXON_ID est toujours renseigné
503      * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il
504      * s'agit d'un
505      * taxon virtuel)
506      * - sinon c'est un synonyme
507      * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le
508      * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID
509      * NB : c'était le comportement initialement prévu.
510      * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2,
511      * le taxon
512      * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes
513      * et les
514      * résultats qu'il pouvait avoir).
515      * Ce mécanisme a été adopté car il fallait distinguer 2 cas :
516      * 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
517      * alors
518      * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres
519      * synonymes, résultats...
520      * 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
521      * qui
522      * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1
523      * pour
524      * R2 est nécessaire
525      * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on
526      * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les
527      * référents
528      * @return this.referenceTaxon ReferenceTaxon
529      */
530     public ReferenceTaxon getReferenceTaxon()
531     {
532         return this.referenceTaxon;
533     }
534 
535     /**
536      * Liste des taxons qui sont la référence.
537      * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment
538      * et ne
539      * plus l'être par la suite.
540      * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont
541      * référents à un moment mais ne peuvent plus l'être par la suite.
542      * Le fonctionnement dans la table TAXON_NAME est le suivant :
543      * - REF_TAXON_ID est toujours renseigné
544      * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il
545      * s'agit d'un
546      * taxon virtuel)
547      * - sinon c'est un synonyme
548      * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le
549      * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID
550      * NB : c'était le comportement initialement prévu.
551      * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2,
552      * le taxon
553      * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes
554      * et les
555      * résultats qu'il pouvait avoir).
556      * Ce mécanisme a été adopté car il fallait distinguer 2 cas :
557      * 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
558      * alors
559      * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres
560      * synonymes, résultats...
561      * 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
562      * qui
563      * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1
564      * pour
565      * R2 est nécessaire
566      * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on
567      * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les
568      * référents
569      * @param referenceTaxonIn ReferenceTaxon
570      */
571     public void setReferenceTaxon(ReferenceTaxon referenceTaxonIn)
572     {
573         this.referenceTaxon = referenceTaxonIn;
574     }
575 
576     private Department recorderDepartment;
577 
578     /**
579      * Liste les départements ou services auxquels sont rattachés les agents
580      * @return this.recorderDepartment Department
581      */
582     public Department getRecorderDepartment()
583     {
584         return this.recorderDepartment;
585     }
586 
587     /**
588      * Liste les départements ou services auxquels sont rattachés les agents
589      * @param recorderDepartmentIn Department
590      */
591     public void setRecorderDepartment(Department recorderDepartmentIn)
592     {
593         this.recorderDepartment = recorderDepartmentIn;
594     }
595 
596     private QualityFlag qualityFlag;
597 
598     /**
599      * Liste des niveaux de qualification.
600      * @return this.qualityFlag QualityFlag
601      */
602     public QualityFlag getQualityFlag()
603     {
604         return this.qualityFlag;
605     }
606 
607     /**
608      * Liste des niveaux de qualification.
609      * @param qualityFlagIn QualityFlag
610      */
611     public void setQualityFlag(QualityFlag qualityFlagIn)
612     {
613         this.qualityFlag = qualityFlagIn;
614     }
615 
616     private Collection<Program> programs = new HashSet<Program>();
617 
618     /**
619      * Activités à l'origine de la collecte d'un ensemble cohérent de données.
620      * @return this.programs Collection<Program>
621      */
622     public Collection<Program> getPrograms()
623     {
624         return this.programs;
625     }
626 
627     /**
628      * Activités à l'origine de la collecte d'un ensemble cohérent de données.
629      * @param programsIn Collection<Program>
630      */
631     public void setPrograms(Collection<Program> programsIn)
632     {
633         this.programs = programsIn;
634     }
635 
636     /**
637      * Activités à l'origine de la collecte d'un ensemble cohérent de données.
638      * @param elementToAdd Program
639      * @return <tt>true</tt> if this collection changed as a result of the
640      *         call
641      */
642     public boolean addPrograms(Program elementToAdd)
643     {
644         return this.programs.add(elementToAdd);
645     }
646 
647     /**
648      * Activités à l'origine de la collecte d'un ensemble cohérent de données.
649      * @param elementToRemove Program
650      * @return <tt>true</tt> if this collection changed as a result of the
651      *         call
652      */
653     public boolean removePrograms(Program elementToRemove)
654     {
655         return this.programs.remove(elementToRemove);
656     }
657 
658     private NumericalPrecision numericalPrecision;
659 
660     /**
661      * Liste des précisions numériques.
662      * @return this.numericalPrecision NumericalPrecision
663      */
664     public NumericalPrecision getNumericalPrecision()
665     {
666         return this.numericalPrecision;
667     }
668 
669     /**
670      * Liste des précisions numériques.
671      * @param numericalPrecisionIn NumericalPrecision
672      */
673     public void setNumericalPrecision(NumericalPrecision numericalPrecisionIn)
674     {
675         this.numericalPrecision = numericalPrecisionIn;
676     }
677 
678     private PrecisionType precisionType;
679 
680     /**
681      * type d'incertitude des mesures d'un paramètre dans une stratégie.
682      * @return this.precisionType PrecisionType
683      */
684     public PrecisionType getPrecisionType()
685     {
686         return this.precisionType;
687     }
688 
689     /**
690      * type d'incertitude des mesures d'un paramètre dans une stratégie.
691      * @param precisionTypeIn PrecisionType
692      */
693     public void setPrecisionType(PrecisionType precisionTypeIn)
694     {
695         this.precisionType = precisionTypeIn;
696     }
697 
698     private Department department;
699 
700     /**
701      * Liste les départements ou services auxquels sont rattachés les agents
702      * @return this.department Department
703      */
704     public Department getDepartment()
705     {
706         return this.department;
707     }
708 
709     /**
710      * Liste les départements ou services auxquels sont rattachés les agents
711      * @param departmentIn Department
712      */
713     public void setDepartment(Department departmentIn)
714     {
715         this.department = departmentIn;
716     }
717 
718     private ObjectType objectType;
719 
720     /**
721      * Liste des types d'objets qui peuvent être associés à la photo ou à un résultat. Cette liste
722      * ne peut
723      * pas être modifiée par l'utilisateur.
724      * @return this.objectType ObjectType
725      */
726     public ObjectType getObjectType()
727     {
728         return this.objectType;
729     }
730 
731     /**
732      * Liste des types d'objets qui peuvent être associés à la photo ou à un résultat. Cette liste
733      * ne peut
734      * pas être modifiée par l'utilisateur.
735      * @param objectTypeIn ObjectType
736      */
737     public void setObjectType(ObjectType objectTypeIn)
738     {
739         this.objectType = objectTypeIn;
740     }
741 
742     private AnalysisInstrument analysisInstrument;
743 
744     /**
745      * Liste les engins d'analyse ou de prélèvement (au sens marque/modèle et non numéro de série).
746      * @return this.analysisInstrument AnalysisInstrument
747      */
748     public AnalysisInstrument getAnalysisInstrument()
749     {
750         return this.analysisInstrument;
751     }
752 
753     /**
754      * Liste les engins d'analyse ou de prélèvement (au sens marque/modèle et non numéro de série).
755      * @param analysisInstrumentIn AnalysisInstrument
756      */
757     public void setAnalysisInstrument(AnalysisInstrument analysisInstrumentIn)
758     {
759         this.analysisInstrument = analysisInstrumentIn;
760     }
761 
762     private QualitativeValue qualitativeValue;
763 
764     /**
765      * Liste des valeurs qualitatives associées aux paramètres.
766      * @return this.qualitativeValue QualitativeValue
767      */
768     public QualitativeValue getQualitativeValue()
769     {
770         return this.qualitativeValue;
771     }
772 
773     /**
774      * Liste des valeurs qualitatives associées aux paramètres.
775      * @param qualitativeValueIn QualitativeValue
776      */
777     public void setQualitativeValue(QualitativeValue qualitativeValueIn)
778     {
779         this.qualitativeValue = qualitativeValueIn;
780     }
781 
782     private Survey survey;
783 
784     /**
785      * Liste les différents passages effectués sur un lieu de surveillance.
786      * Liste les différents passages effectués sur un lieu de surveillance.
787      * @return this.survey Survey
788      */
789     public Survey getSurvey()
790     {
791         return this.survey;
792     }
793 
794     /**
795      * Liste les différents passages effectués sur un lieu de surveillance.
796      * Liste les différents passages effectués sur un lieu de surveillance.
797      * @param surveyIn Survey
798      */
799     public void setSurvey(Survey surveyIn)
800     {
801         this.survey = surveyIn;
802     }
803 
804     private SamplingOperation samplingOperation;
805 
806     /**
807      * Liste les prélévements effectués lors d'un passage.
808      * @return this.samplingOperation SamplingOperation
809      */
810     public SamplingOperation getSamplingOperation()
811     {
812         return this.samplingOperation;
813     }
814 
815     /**
816      * Liste les prélévements effectués lors d'un passage.
817      * @param samplingOperationIn SamplingOperation
818      */
819     public void setSamplingOperation(SamplingOperation samplingOperationIn)
820     {
821         this.samplingOperation = samplingOperationIn;
822     }
823 
824     /**
825      * Returns <code>true</code> if the argument is an TaxonMeasurement instance and all identifiers for this entity
826      * equal the identifiers of the argument entity. Returns <code>false</code> otherwise.
827      */
828     @Override
829     public boolean equals(Object object)
830     {
831         if (this == object)
832         {
833             return true;
834         }
835         if (!(object instanceof TaxonMeasurement))
836         {
837             return false;
838         }
839         final TaxonMeasurement that = (TaxonMeasurement)object;
840         if (this.taxonMeasId == null || that.getTaxonMeasId() == null || !this.taxonMeasId.equals(that.getTaxonMeasId()))
841         {
842             return false;
843         }
844         return true;
845     }
846 
847     /**
848      * Returns a hash code based on this entity's identifiers.
849      */
850     @Override
851     public int hashCode()
852     {
853         int hashCode = 0;
854         hashCode = 29 * hashCode + (this.taxonMeasId == null ? 0 : this.taxonMeasId.hashCode());
855 
856         return hashCode;
857     }
858 
859     /**
860      * Constructs new instances of {@link TaxonMeasurement}.
861      */
862     public static final class Factory
863     {
864         /**
865          * Constructs a new instance of {@link TaxonMeasurement}.
866          * @return new TaxonMeasurementImpl()
867          */
868         public static TaxonMeasurement newInstance()
869         {
870             return new TaxonMeasurementImpl();
871         }
872 
873         /**
874          * Constructs a new instance of {@link TaxonMeasurement}, taking all required and/or
875          * read-only properties as arguments, except for identifiers.
876          * @param objectId Integer
877          * @param updateDt Timestamp
878          * @param pmfm Pmfm
879          * @param qualityFlag QualityFlag
880          * @param objectType ObjectType
881          * @return newInstance
882          */
883         public static TaxonMeasurement newInstance(Integer objectId, Timestamp updateDt, Pmfm pmfm, QualityFlag qualityFlag, ObjectType objectType)
884         {
885             final TaxonMeasurement entity = new TaxonMeasurementImpl();
886             entity.setObjectId(objectId);
887             entity.setUpdateDt(updateDt);
888             entity.setPmfm(pmfm);
889             entity.setQualityFlag(qualityFlag);
890             entity.setObjectType(objectType);
891             return entity;
892         }
893 
894         /**
895          * Constructs a new instance of {@link TaxonMeasurement}, taking all possible properties
896          * (except the identifier(s))as arguments.
897          * @param objectId Integer
898          * @param taxonMeasIndivId Integer
899          * @param taxonMeasNumerValue Float
900          * @param taxonMeasPrecisionValue Float
901          * @param taxonMeasDigitNumber Double
902          * @param taxonMeasControlDt Date
903          * @param taxonMeasValidDt Date
904          * @param taxonMeasQualifDt Date
905          * @param taxonMeasQualifCm String
906          * @param taxonMeasCm String
907          * @param updateDt Timestamp
908          * @param parCd String
909          * @param matrixId Integer
910          * @param fractionId Integer
911          * @param methodId Integer
912          * @param taxonNameId Integer
913          * @param taxonNameNm String
914          * @param sample Sample
915          * @param taxonGroup TaxonGroup
916          * @param pmfm Pmfm
917          * @param referenceTaxon ReferenceTaxon
918          * @param recorderDepartment Department
919          * @param qualityFlag QualityFlag
920          * @param programs Collection<Program>
921          * @param numericalPrecision NumericalPrecision
922          * @param precisionType PrecisionType
923          * @param department Department
924          * @param objectType ObjectType
925          * @param analysisInstrument AnalysisInstrument
926          * @param qualitativeValue QualitativeValue
927          * @param survey Survey
928          * @param samplingOperation SamplingOperation
929          * @return newInstance TaxonMeasurement
930          */
931         public static TaxonMeasurement newInstance(Integer objectId, Integer taxonMeasIndivId, Float taxonMeasNumerValue, Float taxonMeasPrecisionValue, Double taxonMeasDigitNumber, Date taxonMeasControlDt, Date taxonMeasValidDt, Date taxonMeasQualifDt, String taxonMeasQualifCm, String taxonMeasCm, Timestamp updateDt, String parCd, Integer matrixId, Integer fractionId, Integer methodId, Integer taxonNameId, String taxonNameNm, Sample sample, TaxonGroup taxonGroup, Pmfm pmfm, ReferenceTaxon referenceTaxon, Department recorderDepartment, QualityFlag qualityFlag, Collection<Program> programs, NumericalPrecision numericalPrecision, PrecisionType precisionType, Department department, ObjectType objectType, AnalysisInstrument analysisInstrument, QualitativeValue qualitativeValue, Survey survey, SamplingOperation samplingOperation)
932         {
933             final TaxonMeasurement entity = new TaxonMeasurementImpl();
934             entity.setObjectId(objectId);
935             entity.setTaxonMeasIndivId(taxonMeasIndivId);
936             entity.setTaxonMeasNumerValue(taxonMeasNumerValue);
937             entity.setTaxonMeasPrecisionValue(taxonMeasPrecisionValue);
938             entity.setTaxonMeasDigitNumber(taxonMeasDigitNumber);
939             entity.setTaxonMeasControlDt(taxonMeasControlDt);
940             entity.setTaxonMeasValidDt(taxonMeasValidDt);
941             entity.setTaxonMeasQualifDt(taxonMeasQualifDt);
942             entity.setTaxonMeasQualifCm(taxonMeasQualifCm);
943             entity.setTaxonMeasCm(taxonMeasCm);
944             entity.setUpdateDt(updateDt);
945             entity.setParCd(parCd);
946             entity.setMatrixId(matrixId);
947             entity.setFractionId(fractionId);
948             entity.setMethodId(methodId);
949             entity.setTaxonNameId(taxonNameId);
950             entity.setTaxonNameNm(taxonNameNm);
951             entity.setSample(sample);
952             entity.setTaxonGroup(taxonGroup);
953             entity.setPmfm(pmfm);
954             entity.setReferenceTaxon(referenceTaxon);
955             entity.setRecorderDepartment(recorderDepartment);
956             entity.setQualityFlag(qualityFlag);
957             entity.setPrograms(programs);
958             entity.setNumericalPrecision(numericalPrecision);
959             entity.setPrecisionType(precisionType);
960             entity.setDepartment(department);
961             entity.setObjectType(objectType);
962             entity.setAnalysisInstrument(analysisInstrument);
963             entity.setQualitativeValue(qualitativeValue);
964             entity.setSurvey(survey);
965             entity.setSamplingOperation(samplingOperation);
966             return entity;
967         }
968     }
969 
970     /**
971      * @see Comparable#compareTo
972      */
973     public int compareTo(TaxonMeasurement o)
974     {
975         int cmp = 0;
976         if (this.getTaxonMeasId() != null)
977         {
978             cmp = this.getTaxonMeasId().compareTo(o.getTaxonMeasId());
979         }
980         else
981         {
982             if (this.getObjectId() != null)
983             {
984                 cmp = (cmp != 0 ? cmp : this.getObjectId().compareTo(o.getObjectId()));
985             }
986             if (this.getTaxonMeasIndivId() != null)
987             {
988                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasIndivId().compareTo(o.getTaxonMeasIndivId()));
989             }
990             if (this.getTaxonMeasNumerValue() != null)
991             {
992                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasNumerValue().compareTo(o.getTaxonMeasNumerValue()));
993             }
994             if (this.getTaxonMeasPrecisionValue() != null)
995             {
996                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasPrecisionValue().compareTo(o.getTaxonMeasPrecisionValue()));
997             }
998             if (this.getTaxonMeasDigitNumber() != null)
999             {
1000                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasDigitNumber().compareTo(o.getTaxonMeasDigitNumber()));
1001             }
1002             if (this.getTaxonMeasControlDt() != null)
1003             {
1004                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasControlDt().compareTo(o.getTaxonMeasControlDt()));
1005             }
1006             if (this.getTaxonMeasValidDt() != null)
1007             {
1008                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasValidDt().compareTo(o.getTaxonMeasValidDt()));
1009             }
1010             if (this.getTaxonMeasQualifDt() != null)
1011             {
1012                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasQualifDt().compareTo(o.getTaxonMeasQualifDt()));
1013             }
1014             if (this.getTaxonMeasQualifCm() != null)
1015             {
1016                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasQualifCm().compareTo(o.getTaxonMeasQualifCm()));
1017             }
1018             if (this.getTaxonMeasCm() != null)
1019             {
1020                 cmp = (cmp != 0 ? cmp : this.getTaxonMeasCm().compareTo(o.getTaxonMeasCm()));
1021             }
1022             if (this.getUpdateDt() != null)
1023             {
1024                 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt()));
1025             }
1026             if (this.getParCd() != null)
1027             {
1028                 cmp = (cmp != 0 ? cmp : this.getParCd().compareTo(o.getParCd()));
1029             }
1030             if (this.getMatrixId() != null)
1031             {
1032                 cmp = (cmp != 0 ? cmp : this.getMatrixId().compareTo(o.getMatrixId()));
1033             }
1034             if (this.getFractionId() != null)
1035             {
1036                 cmp = (cmp != 0 ? cmp : this.getFractionId().compareTo(o.getFractionId()));
1037             }
1038             if (this.getMethodId() != null)
1039             {
1040                 cmp = (cmp != 0 ? cmp : this.getMethodId().compareTo(o.getMethodId()));
1041             }
1042             if (this.getTaxonNameId() != null)
1043             {
1044                 cmp = (cmp != 0 ? cmp : this.getTaxonNameId().compareTo(o.getTaxonNameId()));
1045             }
1046             if (this.getTaxonNameNm() != null)
1047             {
1048                 cmp = (cmp != 0 ? cmp : this.getTaxonNameNm().compareTo(o.getTaxonNameNm()));
1049             }
1050         }
1051         return cmp;
1052     }
1053 // HibernateEntity.vsl merge-point
1054 // TaxonMeasurement.java merge-point
1055 }