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 }