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