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