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.system;
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.user.Quser;
29 import fr.ifremer.quadrige3.core.dao.referential.ObjectType;
30 import fr.ifremer.quadrige3.core.dao.referential.QualityFlag;
31 import fr.ifremer.quadrige3.core.dao.referential.pmfm.QualitativeValue;
32 import fr.ifremer.quadrige3.core.dao.referential.taxon.ReferenceTaxon;
33 import fr.ifremer.quadrige3.core.dao.referential.taxon.TaxonGroup;
34 import java.io.Serializable;
35 import java.sql.Timestamp;
36
37 /**
38 * Historique d'une opération de qualification
39 */
40 // HibernateEntity.vsl annotations merge-point
41 public abstract class QualificationHistory
42 implements Serializable, Comparable<QualificationHistory>
43 {
44 /**
45 * The serial version UID of this class. Needed for serialization.
46 */
47 private static final long serialVersionUID = 5158149333765545132L;
48
49 // Generate 6 attributes
50 private Integer qualHistId;
51
52 /**
53 * Identifiant de l'opération de qualification
54 * @return this.qualHistId Integer
55 */
56 public Integer getQualHistId()
57 {
58 return this.qualHistId;
59 }
60
61 /**
62 * Identifiant de l'opération de qualification
63 * @param qualHistIdIn Integer
64 */
65 public void setQualHistId(Integer qualHistIdIn)
66 {
67 this.qualHistId = qualHistIdIn;
68 }
69
70 private String qualHistElementId;
71
72 /**
73 * Identifiant de l'entité manipulée : vachar2(77) pour pouvoir contenir la clé composite
74 * SURVEY_ID-EUNIS_TYP_ID
75 * @return this.qualHistElementId String
76 */
77 public String getQualHistElementId()
78 {
79 return this.qualHistElementId;
80 }
81
82 /**
83 * Identifiant de l'entité manipulée : vachar2(77) pour pouvoir contenir la clé composite
84 * SURVEY_ID-EUNIS_TYP_ID
85 * @param qualHistElementIdIn String
86 */
87 public void setQualHistElementId(String qualHistElementIdIn)
88 {
89 this.qualHistElementId = qualHistElementIdIn;
90 }
91
92 private String qualHistOperationCm;
93
94 /**
95 * Commentaire de l'opération de qualification
96 * @return this.qualHistOperationCm String
97 */
98 public String getQualHistOperationCm()
99 {
100 return this.qualHistOperationCm;
101 }
102
103 /**
104 * Commentaire de l'opération de qualification
105 * @param qualHistOperationCmIn String
106 */
107 public void setQualHistOperationCm(String qualHistOperationCmIn)
108 {
109 this.qualHistOperationCm = qualHistOperationCmIn;
110 }
111
112 private Float qualHistPreviousValue;
113
114 /**
115 * Valeur numérique précédente
116 * @return this.qualHistPreviousValue Float
117 */
118 public Float getQualHistPreviousValue()
119 {
120 return this.qualHistPreviousValue;
121 }
122
123 /**
124 * Valeur numérique précédente
125 * @param qualHistPreviousValueIn Float
126 */
127 public void setQualHistPreviousValue(Float qualHistPreviousValueIn)
128 {
129 this.qualHistPreviousValue = qualHistPreviousValueIn;
130 }
131
132 private String qualHistPreviousCm;
133
134 /**
135 * Précédent commentaire de qualification
136 * @return this.qualHistPreviousCm String
137 */
138 public String getQualHistPreviousCm()
139 {
140 return this.qualHistPreviousCm;
141 }
142
143 /**
144 * Précédent commentaire de qualification
145 * @param qualHistPreviousCmIn String
146 */
147 public void setQualHistPreviousCm(String qualHistPreviousCmIn)
148 {
149 this.qualHistPreviousCm = qualHistPreviousCmIn;
150 }
151
152 private Timestamp updateDt;
153
154 /**
155 * Date de mise à jour de l'entité
156 * @return this.updateDt Timestamp
157 */
158 public Timestamp getUpdateDt()
159 {
160 return this.updateDt;
161 }
162
163 /**
164 * Date de mise à jour de l'entité
165 * @param updateDtIn Timestamp
166 */
167 public void setUpdateDt(Timestamp updateDtIn)
168 {
169 this.updateDt = updateDtIn;
170 }
171
172 // Generate 6 associations
173 private ObjectType objectType;
174
175 /**
176 * Liste des types d'objets qui peuvent être associés à la photo ou à un résultat. Cette liste
177 * ne peut
178 * pas être modifiée par l'utilisateur.
179 * @return this.objectType ObjectType
180 */
181 public ObjectType getObjectType()
182 {
183 return this.objectType;
184 }
185
186 /**
187 * Liste des types d'objets qui peuvent être associés à la photo ou à un résultat. Cette liste
188 * ne peut
189 * pas être modifiée par l'utilisateur.
190 * @param objectTypeIn ObjectType
191 */
192 public void setObjectType(ObjectType objectTypeIn)
193 {
194 this.objectType = objectTypeIn;
195 }
196
197 private ReferenceTaxon referenceTaxon;
198
199 /**
200 * Liste des taxons qui sont la référence.
201 * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment
202 * et ne
203 * plus l'être par la suite.
204 * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont
205 * référents à un moment mais ne peuvent plus l'être par la suite.
206 * Le fonctionnement dans la table TAXON_NAME est le suivant :
207 * - REF_TAXON_ID est toujours renseigné
208 * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il
209 * s'agit d'un
210 * taxon virtuel)
211 * - sinon c'est un synonyme
212 * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le
213 * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID
214 * NB : c'était le comportement initialement prévu.
215 * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2,
216 * le taxon
217 * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes
218 * et les
219 * résultats qu'il pouvait avoir).
220 * Ce mécanisme a été adopté car il fallait distinguer 2 cas :
221 * 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
222 * alors
223 * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres
224 * synonymes, résultats...
225 * 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
226 * qui
227 * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1
228 * pour
229 * R2 est nécessaire
230 * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on
231 * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les
232 * référents
233 * @return this.referenceTaxon ReferenceTaxon
234 */
235 public ReferenceTaxon getReferenceTaxon()
236 {
237 return this.referenceTaxon;
238 }
239
240 /**
241 * Liste des taxons qui sont la référence.
242 * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment
243 * et ne
244 * plus l'être par la suite.
245 * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont
246 * référents à un moment mais ne peuvent plus l'être par la suite.
247 * Le fonctionnement dans la table TAXON_NAME est le suivant :
248 * - REF_TAXON_ID est toujours renseigné
249 * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il
250 * s'agit d'un
251 * taxon virtuel)
252 * - sinon c'est un synonyme
253 * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le
254 * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID
255 * NB : c'était le comportement initialement prévu.
256 * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2,
257 * le taxon
258 * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes
259 * et les
260 * résultats qu'il pouvait avoir).
261 * Ce mécanisme a été adopté car il fallait distinguer 2 cas :
262 * 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
263 * alors
264 * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres
265 * synonymes, résultats...
266 * 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
267 * qui
268 * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1
269 * pour
270 * R2 est nécessaire
271 * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on
272 * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les
273 * référents
274 * @param referenceTaxonIn ReferenceTaxon
275 */
276 public void setReferenceTaxon(ReferenceTaxon referenceTaxonIn)
277 {
278 this.referenceTaxon = referenceTaxonIn;
279 }
280
281 private QualitativeValue qualitativeValue;
282
283 /**
284 * Liste des valeurs qualitatives associées aux paramètres.
285 * @return this.qualitativeValue QualitativeValue
286 */
287 public QualitativeValue getQualitativeValue()
288 {
289 return this.qualitativeValue;
290 }
291
292 /**
293 * Liste des valeurs qualitatives associées aux paramètres.
294 * @param qualitativeValueIn QualitativeValue
295 */
296 public void setQualitativeValue(QualitativeValue qualitativeValueIn)
297 {
298 this.qualitativeValue = qualitativeValueIn;
299 }
300
301 private TaxonGroup taxonGroup;
302
303 /**
304 * Liste l'ensemble de taxons ayant les mêmes caractéristiques pour le critère pris en compte.
305 * @return this.taxonGroup TaxonGroup
306 */
307 public TaxonGroup getTaxonGroup()
308 {
309 return this.taxonGroup;
310 }
311
312 /**
313 * Liste l'ensemble de taxons ayant les mêmes caractéristiques pour le critère pris en compte.
314 * @param taxonGroupIn TaxonGroup
315 */
316 public void setTaxonGroup(TaxonGroup taxonGroupIn)
317 {
318 this.taxonGroup = taxonGroupIn;
319 }
320
321 private QualityFlag qualityFlag;
322
323 /**
324 * Liste des niveaux de qualification.
325 * @return this.qualityFlag QualityFlag
326 */
327 public QualityFlag getQualityFlag()
328 {
329 return this.qualityFlag;
330 }
331
332 /**
333 * Liste des niveaux de qualification.
334 * @param qualityFlagIn QualityFlag
335 */
336 public void setQualityFlag(QualityFlag qualityFlagIn)
337 {
338 this.qualityFlag = qualityFlagIn;
339 }
340
341 private Quser quser;
342
343 /**
344 * Liste l'ensemble des agents et utilisateurs du système.
345 * @return this.quser Quser
346 */
347 public Quser getQuser()
348 {
349 return this.quser;
350 }
351
352 /**
353 * Liste l'ensemble des agents et utilisateurs du système.
354 * @param quserIn Quser
355 */
356 public void setQuser(Quser quserIn)
357 {
358 this.quser = quserIn;
359 }
360
361 /**
362 * Returns <code>true</code> if the argument is an QualificationHistory instance and all identifiers for this entity
363 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise.
364 */
365 @Override
366 public boolean equals(Object object)
367 {
368 if (this == object)
369 {
370 return true;
371 }
372 if (!(object instanceof QualificationHistory))
373 {
374 return false;
375 }
376 final QualificationHistory that = (QualificationHistory)object;
377 if (this.qualHistId == null || that.getQualHistId() == null || !this.qualHistId.equals(that.getQualHistId()))
378 {
379 return false;
380 }
381 return true;
382 }
383
384 /**
385 * Returns a hash code based on this entity's identifiers.
386 */
387 @Override
388 public int hashCode()
389 {
390 int hashCode = 0;
391 hashCode = 29 * hashCode + (this.qualHistId == null ? 0 : this.qualHistId.hashCode());
392
393 return hashCode;
394 }
395
396 /**
397 * Constructs new instances of {@link QualificationHistory}.
398 */
399 public static final class Factory
400 {
401 /**
402 * Constructs a new instance of {@link QualificationHistory}.
403 * @return new QualificationHistoryImpl()
404 */
405 public static QualificationHistory newInstance()
406 {
407 return new QualificationHistoryImpl();
408 }
409
410 /**
411 * Constructs a new instance of {@link QualificationHistory}, taking all required and/or
412 * read-only properties as arguments, except for identifiers.
413 * @param qualHistElementId String
414 * @param objectType ObjectType
415 * @param quser Quser
416 * @return newInstance
417 */
418 public static QualificationHistory newInstance(String qualHistElementId, ObjectType objectType, Quser quser)
419 {
420 final QualificationHistory entity = new QualificationHistoryImpl();
421 entity.setQualHistElementId(qualHistElementId);
422 entity.setObjectType(objectType);
423 entity.setQuser(quser);
424 return entity;
425 }
426
427 /**
428 * Constructs a new instance of {@link QualificationHistory}, taking all possible properties
429 * (except the identifier(s))as arguments.
430 * @param qualHistElementId String
431 * @param qualHistOperationCm String
432 * @param qualHistPreviousValue Float
433 * @param qualHistPreviousCm String
434 * @param updateDt Timestamp
435 * @param objectType ObjectType
436 * @param referenceTaxon ReferenceTaxon
437 * @param qualitativeValue QualitativeValue
438 * @param taxonGroup TaxonGroup
439 * @param qualityFlag QualityFlag
440 * @param quser Quser
441 * @return newInstance QualificationHistory
442 */
443 public static QualificationHistory newInstance(String qualHistElementId, String qualHistOperationCm, Float qualHistPreviousValue, String qualHistPreviousCm, Timestamp updateDt, ObjectType objectType, ReferenceTaxon referenceTaxon, QualitativeValue qualitativeValue, TaxonGroup taxonGroup, QualityFlag qualityFlag, Quser quser)
444 {
445 final QualificationHistory entity = new QualificationHistoryImpl();
446 entity.setQualHistElementId(qualHistElementId);
447 entity.setQualHistOperationCm(qualHistOperationCm);
448 entity.setQualHistPreviousValue(qualHistPreviousValue);
449 entity.setQualHistPreviousCm(qualHistPreviousCm);
450 entity.setUpdateDt(updateDt);
451 entity.setObjectType(objectType);
452 entity.setReferenceTaxon(referenceTaxon);
453 entity.setQualitativeValue(qualitativeValue);
454 entity.setTaxonGroup(taxonGroup);
455 entity.setQualityFlag(qualityFlag);
456 entity.setQuser(quser);
457 return entity;
458 }
459 }
460
461 /**
462 * @see Comparable#compareTo
463 */
464 public int compareTo(QualificationHistory o)
465 {
466 int cmp = 0;
467 if (this.getQualHistId() != null)
468 {
469 cmp = this.getQualHistId().compareTo(o.getQualHistId());
470 }
471 else
472 {
473 if (this.getQualHistElementId() != null)
474 {
475 cmp = (cmp != 0 ? cmp : this.getQualHistElementId().compareTo(o.getQualHistElementId()));
476 }
477 if (this.getQualHistOperationCm() != null)
478 {
479 cmp = (cmp != 0 ? cmp : this.getQualHistOperationCm().compareTo(o.getQualHistOperationCm()));
480 }
481 if (this.getQualHistPreviousValue() != null)
482 {
483 cmp = (cmp != 0 ? cmp : this.getQualHistPreviousValue().compareTo(o.getQualHistPreviousValue()));
484 }
485 if (this.getQualHistPreviousCm() != null)
486 {
487 cmp = (cmp != 0 ? cmp : this.getQualHistPreviousCm().compareTo(o.getQualHistPreviousCm()));
488 }
489 if (this.getUpdateDt() != null)
490 {
491 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt()));
492 }
493 }
494 return cmp;
495 }
496 // HibernateEntity.vsl merge-point
497 // QualificationHistory.java merge-point
498 }