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.referential.taxon;
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.referential.Status;
30 import fr.ifremer.quadrige2.core.dao.sandre.SandreTaxonomicLevelExp;
31 import fr.ifremer.quadrige2.core.dao.sandre.SandreTaxonomicLevelImp;
32 import java.io.Serializable;
33 import java.sql.Timestamp;
34 import java.util.Collection;
35 import java.util.Date;
36 import java.util.HashSet;
37
38 /**
39 * Liste des niveaux systématiques des taxons.
40 */
41 // HibernateEntity.vsl annotations merge-point
42 public abstract class TaxonomicLevel
43 implements Serializable, Comparable<TaxonomicLevel>
44 {
45 /**
46 * The serial version UID of this class. Needed for serialization.
47 */
48 private static final long serialVersionUID = 8938493529641518748L;
49
50 // Generate 7 attributes
51 private String taxLevelCd;
52
53 /**
54 * Code identifiant de façon unique le niveau
55 * @return this.taxLevelCd String
56 */
57 public String getTaxLevelCd()
58 {
59 return this.taxLevelCd;
60 }
61
62 /**
63 * Code identifiant de façon unique le niveau
64 * @param taxLevelCdIn String
65 */
66 public void setTaxLevelCd(String taxLevelCdIn)
67 {
68 this.taxLevelCd = taxLevelCdIn;
69 }
70
71 private Double taxLevelNb;
72
73 /**
74 * Numéro du rang taxinomique. décroissant du règne vers l'espèce
75 * Ceci permet de limiter le choix des niveaux fils aux numéros inférieurs
76 * @return this.taxLevelNb Double
77 */
78 public Double getTaxLevelNb()
79 {
80 return this.taxLevelNb;
81 }
82
83 /**
84 * Numéro du rang taxinomique. décroissant du règne vers l'espèce
85 * Ceci permet de limiter le choix des niveaux fils aux numéros inférieurs
86 * @param taxLevelNbIn Double
87 */
88 public void setTaxLevelNb(Double taxLevelNbIn)
89 {
90 this.taxLevelNb = taxLevelNbIn;
91 }
92
93 private String taxLevelNm;
94
95 /**
96 * Libellé du niveau du taxon
97 * @return this.taxLevelNm String
98 */
99 public String getTaxLevelNm()
100 {
101 return this.taxLevelNm;
102 }
103
104 /**
105 * Libellé du niveau du taxon
106 * @param taxLevelNmIn String
107 */
108 public void setTaxLevelNm(String taxLevelNmIn)
109 {
110 this.taxLevelNm = taxLevelNmIn;
111 }
112
113 private String taxLevelLb;
114
115 /**
116 * Mnémonique du niveau du taxon
117 * @return this.taxLevelLb String
118 */
119 public String getTaxLevelLb()
120 {
121 return this.taxLevelLb;
122 }
123
124 /**
125 * Mnémonique du niveau du taxon
126 * @param taxLevelLbIn String
127 */
128 public void setTaxLevelLb(String taxLevelLbIn)
129 {
130 this.taxLevelLb = taxLevelLbIn;
131 }
132
133 private String taxLevelCm;
134
135 /**
136 * Commentaire décrivant le niveau du taxon
137 * @return this.taxLevelCm String
138 */
139 public String getTaxLevelCm()
140 {
141 return this.taxLevelCm;
142 }
143
144 /**
145 * Commentaire décrivant le niveau du taxon
146 * @param taxLevelCmIn String
147 */
148 public void setTaxLevelCm(String taxLevelCmIn)
149 {
150 this.taxLevelCm = taxLevelCmIn;
151 }
152
153 private Date taxLevelCreationDt;
154
155 /**
156 * Date de création de l'objet
157 * @return this.taxLevelCreationDt Date
158 */
159 public Date getTaxLevelCreationDt()
160 {
161 return this.taxLevelCreationDt;
162 }
163
164 /**
165 * Date de création de l'objet
166 * @param taxLevelCreationDtIn Date
167 */
168 public void setTaxLevelCreationDt(Date taxLevelCreationDtIn)
169 {
170 this.taxLevelCreationDt = taxLevelCreationDtIn;
171 }
172
173 private Timestamp updateDt;
174
175 /**
176 * Date de mise à jour de l'objet
177 * @return this.updateDt Timestamp
178 */
179 public Timestamp getUpdateDt()
180 {
181 return this.updateDt;
182 }
183
184 /**
185 * Date de mise à jour de l'objet
186 * @param updateDtIn Timestamp
187 */
188 public void setUpdateDt(Timestamp updateDtIn)
189 {
190 this.updateDt = updateDtIn;
191 }
192
193 // Generate 4 associations
194 private Status status;
195
196 /**
197 * Liste des états possibles d'un objet.
198 * @return this.status Status
199 */
200 public Status getStatus()
201 {
202 return this.status;
203 }
204
205 /**
206 * Liste des états possibles d'un objet.
207 * @param statusIn Status
208 */
209 public void setStatus(Status statusIn)
210 {
211 this.status = statusIn;
212 }
213
214 private Collection<SandreTaxonomicLevelImp> sandreTaxonomicLevelImpIds = new HashSet<SandreTaxonomicLevelImp>();
215
216 /**
217 * Niveaux taxinomiques Sandre pour les imports de données
218 * @return this.sandreTaxonomicLevelImpIds Collection<SandreTaxonomicLevelImp>
219 */
220 public Collection<SandreTaxonomicLevelImp> getSandreTaxonomicLevelImpIds()
221 {
222 return this.sandreTaxonomicLevelImpIds;
223 }
224
225 /**
226 * Niveaux taxinomiques Sandre pour les imports de données
227 * @param sandreTaxonomicLevelImpIdsIn Collection<SandreTaxonomicLevelImp>
228 */
229 public void setSandreTaxonomicLevelImpIds(Collection<SandreTaxonomicLevelImp> sandreTaxonomicLevelImpIdsIn)
230 {
231 this.sandreTaxonomicLevelImpIds = sandreTaxonomicLevelImpIdsIn;
232 }
233
234 /**
235 * Niveaux taxinomiques Sandre pour les imports de données
236 * @param elementToAdd SandreTaxonomicLevelImp
237 * @return <tt>true</tt> if this collection changed as a result of the
238 * call
239 */
240 public boolean addSandreTaxonomicLevelImpIds(SandreTaxonomicLevelImp elementToAdd)
241 {
242 return this.sandreTaxonomicLevelImpIds.add(elementToAdd);
243 }
244
245 /**
246 * Niveaux taxinomiques Sandre pour les imports de données
247 * @param elementToRemove SandreTaxonomicLevelImp
248 * @return <tt>true</tt> if this collection changed as a result of the
249 * call
250 */
251 public boolean removeSandreTaxonomicLevelImpIds(SandreTaxonomicLevelImp elementToRemove)
252 {
253 return this.sandreTaxonomicLevelImpIds.remove(elementToRemove);
254 }
255
256 private Collection<TaxonName> taxonNames = new HashSet<TaxonName>();
257
258 /**
259 * Liste les taxons (interface avec ERMS)
260 * @return this.taxonNames Collection<TaxonName>
261 */
262 public Collection<TaxonName> getTaxonNames()
263 {
264 return this.taxonNames;
265 }
266
267 /**
268 * Liste les taxons (interface avec ERMS)
269 * @param taxonNamesIn Collection<TaxonName>
270 */
271 public void setTaxonNames(Collection<TaxonName> taxonNamesIn)
272 {
273 this.taxonNames = taxonNamesIn;
274 }
275
276 /**
277 * Liste les taxons (interface avec ERMS)
278 * @param elementToAdd TaxonName
279 * @return <tt>true</tt> if this collection changed as a result of the
280 * call
281 */
282 public boolean addTaxonNames(TaxonName elementToAdd)
283 {
284 return this.taxonNames.add(elementToAdd);
285 }
286
287 /**
288 * Liste les taxons (interface avec ERMS)
289 * @param elementToRemove TaxonName
290 * @return <tt>true</tt> if this collection changed as a result of the
291 * call
292 */
293 public boolean removeTaxonNames(TaxonName elementToRemove)
294 {
295 return this.taxonNames.remove(elementToRemove);
296 }
297
298 private Collection<SandreTaxonomicLevelExp> sandreTaxonomicLevelExpIds = new HashSet<SandreTaxonomicLevelExp>();
299
300 /**
301 * Niveaux taxinomiques Sandre pour les exports de données
302 * @return this.sandreTaxonomicLevelExpIds Collection<SandreTaxonomicLevelExp>
303 */
304 public Collection<SandreTaxonomicLevelExp> getSandreTaxonomicLevelExpIds()
305 {
306 return this.sandreTaxonomicLevelExpIds;
307 }
308
309 /**
310 * Niveaux taxinomiques Sandre pour les exports de données
311 * @param sandreTaxonomicLevelExpIdsIn Collection<SandreTaxonomicLevelExp>
312 */
313 public void setSandreTaxonomicLevelExpIds(Collection<SandreTaxonomicLevelExp> sandreTaxonomicLevelExpIdsIn)
314 {
315 this.sandreTaxonomicLevelExpIds = sandreTaxonomicLevelExpIdsIn;
316 }
317
318 /**
319 * Niveaux taxinomiques Sandre pour les exports de données
320 * @param elementToAdd SandreTaxonomicLevelExp
321 * @return <tt>true</tt> if this collection changed as a result of the
322 * call
323 */
324 public boolean addSandreTaxonomicLevelExpIds(SandreTaxonomicLevelExp elementToAdd)
325 {
326 return this.sandreTaxonomicLevelExpIds.add(elementToAdd);
327 }
328
329 /**
330 * Niveaux taxinomiques Sandre pour les exports de données
331 * @param elementToRemove SandreTaxonomicLevelExp
332 * @return <tt>true</tt> if this collection changed as a result of the
333 * call
334 */
335 public boolean removeSandreTaxonomicLevelExpIds(SandreTaxonomicLevelExp elementToRemove)
336 {
337 return this.sandreTaxonomicLevelExpIds.remove(elementToRemove);
338 }
339
340 /**
341 * Returns <code>true</code> if the argument is an TaxonomicLevel instance and all identifiers for this entity
342 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise.
343 */
344 @Override
345 public boolean equals(Object object)
346 {
347 if (this == object)
348 {
349 return true;
350 }
351 if (!(object instanceof TaxonomicLevel))
352 {
353 return false;
354 }
355 final TaxonomicLevel that = (TaxonomicLevel)object;
356 if (this.taxLevelCd == null || that.getTaxLevelCd() == null || !this.taxLevelCd.equals(that.getTaxLevelCd()))
357 {
358 return false;
359 }
360 return true;
361 }
362
363 /**
364 * Returns a hash code based on this entity's identifiers.
365 */
366 @Override
367 public int hashCode()
368 {
369 int hashCode = 0;
370 hashCode = 29 * hashCode + (this.taxLevelCd == null ? 0 : this.taxLevelCd.hashCode());
371
372 return hashCode;
373 }
374
375 /**
376 * Constructs new instances of {@link TaxonomicLevel}.
377 */
378 public static final class Factory
379 {
380 /**
381 * Constructs a new instance of {@link TaxonomicLevel}.
382 * @return new TaxonomicLevelImpl()
383 */
384 public static TaxonomicLevel newInstance()
385 {
386 return new TaxonomicLevelImpl();
387 }
388
389 /**
390 * Constructs a new instance of {@link TaxonomicLevel}, taking all required and/or
391 * read-only properties as arguments, except for identifiers.
392 * @param taxLevelNm String
393 * @param updateDt Timestamp
394 * @param status Status
395 * @return newInstance
396 */
397 public static TaxonomicLevel newInstance(String taxLevelNm, Timestamp updateDt, Status status)
398 {
399 final TaxonomicLevel entity = new TaxonomicLevelImpl();
400 entity.setTaxLevelNm(taxLevelNm);
401 entity.setUpdateDt(updateDt);
402 entity.setStatus(status);
403 return entity;
404 }
405
406 /**
407 * Constructs a new instance of {@link TaxonomicLevel}, taking all possible properties
408 * (except the identifier(s))as arguments.
409 * @param taxLevelNb Double
410 * @param taxLevelNm String
411 * @param taxLevelLb String
412 * @param taxLevelCm String
413 * @param taxLevelCreationDt Date
414 * @param updateDt Timestamp
415 * @param status Status
416 * @param sandreTaxonomicLevelImpIds Collection<SandreTaxonomicLevelImp>
417 * @param taxonNames Collection<TaxonName>
418 * @param sandreTaxonomicLevelExpIds Collection<SandreTaxonomicLevelExp>
419 * @return newInstance TaxonomicLevel
420 */
421 public static TaxonomicLevel newInstance(Double taxLevelNb, String taxLevelNm, String taxLevelLb, String taxLevelCm, Date taxLevelCreationDt, Timestamp updateDt, Status status, Collection<SandreTaxonomicLevelImp> sandreTaxonomicLevelImpIds, Collection<TaxonName> taxonNames, Collection<SandreTaxonomicLevelExp> sandreTaxonomicLevelExpIds)
422 {
423 final TaxonomicLevel entity = new TaxonomicLevelImpl();
424 entity.setTaxLevelNb(taxLevelNb);
425 entity.setTaxLevelNm(taxLevelNm);
426 entity.setTaxLevelLb(taxLevelLb);
427 entity.setTaxLevelCm(taxLevelCm);
428 entity.setTaxLevelCreationDt(taxLevelCreationDt);
429 entity.setUpdateDt(updateDt);
430 entity.setStatus(status);
431 entity.setSandreTaxonomicLevelImpIds(sandreTaxonomicLevelImpIds);
432 entity.setTaxonNames(taxonNames);
433 entity.setSandreTaxonomicLevelExpIds(sandreTaxonomicLevelExpIds);
434 return entity;
435 }
436 }
437
438 /**
439 * @see Comparable#compareTo
440 */
441 public int compareTo(TaxonomicLevel o)
442 {
443 int cmp = 0;
444 if (this.getTaxLevelCd() != null)
445 {
446 cmp = this.getTaxLevelCd().compareTo(o.getTaxLevelCd());
447 }
448 else
449 {
450 if (this.getTaxLevelNb() != null)
451 {
452 cmp = (cmp != 0 ? cmp : this.getTaxLevelNb().compareTo(o.getTaxLevelNb()));
453 }
454 if (this.getTaxLevelNm() != null)
455 {
456 cmp = (cmp != 0 ? cmp : this.getTaxLevelNm().compareTo(o.getTaxLevelNm()));
457 }
458 if (this.getTaxLevelLb() != null)
459 {
460 cmp = (cmp != 0 ? cmp : this.getTaxLevelLb().compareTo(o.getTaxLevelLb()));
461 }
462 if (this.getTaxLevelCm() != null)
463 {
464 cmp = (cmp != 0 ? cmp : this.getTaxLevelCm().compareTo(o.getTaxLevelCm()));
465 }
466 if (this.getTaxLevelCreationDt() != null)
467 {
468 cmp = (cmp != 0 ? cmp : this.getTaxLevelCreationDt().compareTo(o.getTaxLevelCreationDt()));
469 }
470 if (this.getUpdateDt() != null)
471 {
472 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt()));
473 }
474 }
475 return cmp;
476 }
477 // HibernateEntity.vsl merge-point
478 // TaxonomicLevel.java merge-point
479 }