001// license-header java merge-point 002// 003// Attention: Generated code! Do not modify by hand! 004// Generated by: hibernate/HibernateEntity.vsl in andromda-hibernate-cartridge. 005// 006package fr.ifremer.adagio.core.dao.referential.pmfm; 007 008/* 009 * #%L 010 * SIH-Adagio :: Core 011 * $Id:$ 012 * $HeadURL:$ 013 * %% 014 * Copyright (C) 2012 - 2014 Ifremer 015 * %% 016 * This program is free software: you can redistribute it and/or modify 017 * it under the terms of the GNU Affero General Public License as published by 018 * the Free Software Foundation, either version 3 of the License, or 019 * (at your option) any later version. 020 * 021 * This program is distributed in the hope that it will be useful, 022 * but WITHOUT ANY WARRANTY; without even the implied warranty of 023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 024 * GNU General Public License for more details. 025 * 026 * You should have received a copy of the GNU Affero General Public License 027 * along with this program. If not, see <http://www.gnu.org/licenses/>. 028 * #L% 029 */ 030 031import fr.ifremer.adagio.core.dao.referential.Status; 032import java.io.Serializable; 033import java.sql.Timestamp; 034import java.util.Collection; 035import java.util.Date; 036import java.util.HashSet; 037 038/** 039 * Un paramètre est une propriété du milieu ou d'un élément du milieu qui contribue à en apprécier 040 * les caractéristiques et/ou la qualité et/ou l'aptitude à des usages. 041 * Le paramètre se décline en trois types : quantitatif, qualitatif ou libre. 042 * Le type quantitatif se rapporte aux paramètres qui ont une infinité de résultats numériques. 043 * Le type qualitatif se rapporte aux paramètres qui ne prennent qu'un nombre limité de valeurs 044 * prédéfinies pour chacun d'eux. 045 * Le type libre, ou alphanumérique, correspond aux paramètres de valeurs alphanumériques, sans 046 * limite de valeurs possibles (hormis la longueur de la chaine : 40 max). 047 * Ces trois types sont mutuellement exclusifs. 048 * Exemple de paramètre : 049 * • Taille (numérique) 050 * • Age (numérique) 051 * • Sexe (qualitatif) 052 * • Catégorie commerciale (qualitatif) 053 * • Présentation commerciale (qualitatif) 054 * • Vrac / Hors Vrac (qualitatif) 055 * • Rejet / Débarquement (qualitatif) (Discard/Landing) 056 * • Stade de maturité (qualitatif) (Maturity stage) 057 * • Numéro de contrat (libre - alphanumérique) 058 * Cette liste n’est pas exhaustive. 059 * Nombre de lignes : 130 060 */ 061// HibernateEntity.vsl annotations merge-point 062public abstract class Parameter 063 implements Serializable, Comparable<Parameter> 064{ 065 /** 066 * The serial version UID of this class. Needed for serialization. 067 */ 068 private static final long serialVersionUID = 5755384194357132657L; 069 070 // Generate 10 attributes 071 private String code; 072 073 /** 074 * Code du paramètre 075 * @return this.code String 076 */ 077 public String getCode() 078 { 079 return this.code; 080 } 081 082 /** 083 * Code du paramètre 084 * @param codeIn String 085 */ 086 public void setCode(String codeIn) 087 { 088 this.code = codeIn; 089 } 090 091 private String name; 092 093 /** 094 * Libellé du paramètre 095 * @return this.name String 096 */ 097 public String getName() 098 { 099 return this.name; 100 } 101 102 /** 103 * Libellé du paramètre 104 * @param nameIn String 105 */ 106 public void setName(String nameIn) 107 { 108 this.name = nameIn; 109 } 110 111 private String description; 112 113 /** 114 * Description du paramètre 115 * @return this.description String 116 */ 117 public String getDescription() 118 { 119 return this.description; 120 } 121 122 /** 123 * Description du paramètre 124 * @param descriptionIn String 125 */ 126 public void setDescription(String descriptionIn) 127 { 128 this.description = descriptionIn; 129 } 130 131 private Boolean isQualitative; 132 133 /** 134 * Indique si pour le paramètre on saisit des valeurs numérique ou si on choisit dans une liste 135 * de valeurs qualitatives 136 * @return this.isQualitative Boolean 137 */ 138 public Boolean isIsQualitative() 139 { 140 return this.isQualitative; 141 } 142 143 /** 144 * Indique si pour le paramètre on saisit des valeurs numérique ou si on choisit dans une liste 145 * de valeurs qualitatives 146 * @param isQualitativeIn Boolean 147 */ 148 public void setIsQualitative(Boolean isQualitativeIn) 149 { 150 this.isQualitative = isQualitativeIn; 151 } 152 153 private Boolean isTaxinomic; 154 155 /** 156 * Indique si le paramètre est utilisé pour des mesures de dénombrement 157 * @return this.isTaxinomic Boolean 158 */ 159 public Boolean isIsTaxinomic() 160 { 161 return this.isTaxinomic; 162 } 163 164 /** 165 * Indique si le paramètre est utilisé pour des mesures de dénombrement 166 * @param isTaxinomicIn Boolean 167 */ 168 public void setIsTaxinomic(Boolean isTaxinomicIn) 169 { 170 this.isTaxinomic = isTaxinomicIn; 171 } 172 173 private Boolean isCalculated; 174 175 /** 176 * Indique si le paramètre est calculé 177 * @return this.isCalculated Boolean 178 */ 179 public Boolean isIsCalculated() 180 { 181 return this.isCalculated; 182 } 183 184 /** 185 * Indique si le paramètre est calculé 186 * @param isCalculatedIn Boolean 187 */ 188 public void setIsCalculated(Boolean isCalculatedIn) 189 { 190 this.isCalculated = isCalculatedIn; 191 } 192 193 private Boolean isAlphanumeric = Boolean.valueOf(false); 194 195 /** 196 * <html> 197 * <head> 198 * <style> 199 * p {padding:0px; margin:0px;} 200 * </style> 201 * </head> 202 * <body> 203 * <p> 204 * Indique si pour le paramètre on saisit des valeurs alphanumérique 205 * (=Vrai) ou si on choisit dans une liste de valeurs qualitatives ou si 206 * les valeurs sont numérique (=Faux - cf <i>isQualitative</i>) 207 * </p> 208 * </body> 209 * </html> 210 * @return this.isAlphanumeric Boolean 211 */ 212 public Boolean isIsAlphanumeric() 213 { 214 return this.isAlphanumeric; 215 } 216 217 /** 218 * <html> 219 * <head> 220 * <style> 221 * p {padding:0px; margin:0px;} 222 * </style> 223 * </head> 224 * <body> 225 * <p> 226 * Indique si pour le paramètre on saisit des valeurs alphanumérique 227 * (=Vrai) ou si on choisit dans une liste de valeurs qualitatives ou si 228 * les valeurs sont numérique (=Faux - cf <i>isQualitative</i>) 229 * </p> 230 * </body> 231 * </html> 232 * @param isAlphanumericIn Boolean 233 */ 234 public void setIsAlphanumeric(Boolean isAlphanumericIn) 235 { 236 this.isAlphanumeric = isAlphanumericIn; 237 } 238 239 private Date creationDate; 240 241 /** 242 * 243 * @return this.creationDate Date 244 */ 245 public Date getCreationDate() 246 { 247 return this.creationDate; 248 } 249 250 /** 251 * 252 * @param creationDateIn Date 253 */ 254 public void setCreationDate(Date creationDateIn) 255 { 256 this.creationDate = creationDateIn; 257 } 258 259 private Timestamp updateDate; 260 261 /** 262 * 263 * @return this.updateDate Timestamp 264 */ 265 public Timestamp getUpdateDate() 266 { 267 return this.updateDate; 268 } 269 270 /** 271 * 272 * @param updateDateIn Timestamp 273 */ 274 public void setUpdateDate(Timestamp updateDateIn) 275 { 276 this.updateDate = updateDateIn; 277 } 278 279 private String comments; 280 281 /** 282 * 283 * @return this.comments String 284 */ 285 public String getComments() 286 { 287 return this.comments; 288 } 289 290 /** 291 * 292 * @param commentsIn String 293 */ 294 public void setComments(String commentsIn) 295 { 296 this.comments = commentsIn; 297 } 298 299 // Generate 7 associations 300 private ParameterGroup parameterGroup; 301 302 /** 303 * Groupe de paramètres. 304 * Les groupes permettent le regroupement et la hiérarchisation des paramètres, par thématiques. 305 * Par 306 * exemple, on aura : 307 * - Halieutique 308 * |- Individu (paramètres : taille, sexe, ..) 309 * |- Engin (paramètres : longueur de bras, ...) 310 * |- Condition d'observation (paramètres : état de la mer...) 311 * @return this.parameterGroup ParameterGroup 312 */ 313 public ParameterGroup getParameterGroup() 314 { 315 return this.parameterGroup; 316 } 317 318 /** 319 * Groupe de paramètres. 320 * Les groupes permettent le regroupement et la hiérarchisation des paramètres, par thématiques. 321 * Par 322 * exemple, on aura : 323 * - Halieutique 324 * |- Individu (paramètres : taille, sexe, ..) 325 * |- Engin (paramètres : longueur de bras, ...) 326 * |- Condition d'observation (paramètres : état de la mer...) 327 * @param parameterGroupIn ParameterGroup 328 */ 329 public void setParameterGroup(ParameterGroup parameterGroupIn) 330 { 331 this.parameterGroup = parameterGroupIn; 332 } 333 334 private Status status; 335 336 /** 337 * état de l'objet (actif ou inactif) 338 * @return this.status Status 339 */ 340 public Status getStatus() 341 { 342 return this.status; 343 } 344 345 /** 346 * état de l'objet (actif ou inactif) 347 * @param statusIn Status 348 */ 349 public void setStatus(Status statusIn) 350 { 351 this.status = statusIn; 352 } 353 354 private Collection<QualitativeValue> qualitativeValues = new HashSet<QualitativeValue>(); 355 356 /** 357 * Liste des valeurs qualitatives que peut prendre un paramètre. 358 * Par exemple : 359 * - pour le paramètre Sexe : "Mâle" et "Femelle" 360 * - pour le paramètre Présentation : "Vidé", "Entier", ... 361 * - pour le paramètre Catégorie : "Gros", "Moyen", ... 362 * @return this.qualitativeValues Collection<QualitativeValue> 363 */ 364 public Collection<QualitativeValue> getQualitativeValues() 365 { 366 return this.qualitativeValues; 367 } 368 369 /** 370 * Liste des valeurs qualitatives que peut prendre un paramètre. 371 * Par exemple : 372 * - pour le paramètre Sexe : "Mâle" et "Femelle" 373 * - pour le paramètre Présentation : "Vidé", "Entier", ... 374 * - pour le paramètre Catégorie : "Gros", "Moyen", ... 375 * @param qualitativeValuesIn Collection<QualitativeValue> 376 */ 377 public void setQualitativeValues(Collection<QualitativeValue> qualitativeValuesIn) 378 { 379 this.qualitativeValues = qualitativeValuesIn; 380 } 381 382 /** 383 * Liste des valeurs qualitatives que peut prendre un paramètre. 384 * Par exemple : 385 * - pour le paramètre Sexe : "Mâle" et "Femelle" 386 * - pour le paramètre Présentation : "Vidé", "Entier", ... 387 * - pour le paramètre Catégorie : "Gros", "Moyen", ... 388 * @param elementToAdd QualitativeValue 389 * @return <tt>true</tt> if this collection changed as a result of the 390 * call 391 */ 392 public boolean addQualitativeValues(QualitativeValue elementToAdd) 393 { 394 return this.qualitativeValues.add(elementToAdd); 395 } 396 397 /** 398 * Liste des valeurs qualitatives que peut prendre un paramètre. 399 * Par exemple : 400 * - pour le paramètre Sexe : "Mâle" et "Femelle" 401 * - pour le paramètre Présentation : "Vidé", "Entier", ... 402 * - pour le paramètre Catégorie : "Gros", "Moyen", ... 403 * @param elementToRemove QualitativeValue 404 * @return <tt>true</tt> if this collection changed as a result of the 405 * call 406 */ 407 public boolean removeQualitativeValues(QualitativeValue elementToRemove) 408 { 409 return this.qualitativeValues.remove(elementToRemove); 410 } 411 412 /** 413 * Returns <code>true</code> if the argument is an Parameter instance and all identifiers for this entity 414 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 415 */ 416 @Override 417 public boolean equals(Object object) 418 { 419 if (this == object) 420 { 421 return true; 422 } 423 if (!(object instanceof Parameter)) 424 { 425 return false; 426 } 427 final Parameter that = (Parameter)object; 428 if (this.code == null || that.getCode() == null || !this.code.equals(that.getCode())) 429 { 430 return false; 431 } 432 return true; 433 } 434 435 /** 436 * Returns a hash code based on this entity's identifiers. 437 */ 438 @Override 439 public int hashCode() 440 { 441 int hashCode = 0; 442 hashCode = 29 * hashCode + (this.code == null ? 0 : this.code.hashCode()); 443 444 return hashCode; 445 } 446 447 /** 448 * Constructs new instances of {@link Parameter}. 449 */ 450 public static final class Factory 451 { 452 /** 453 * Constructs a new instance of {@link Parameter}. 454 * @return new ParameterImpl() 455 */ 456 public static Parameter newInstance() 457 { 458 return new ParameterImpl(); 459 } 460 461 /** 462 * Constructs a new instance of {@link Parameter}, taking all required and/or 463 * read-only properties as arguments, except for identifiers. 464 * @param name String 465 * @param isQualitative Boolean 466 * @param isTaxinomic Boolean 467 * @param isCalculated Boolean 468 * @param isAlphanumeric Boolean 469 * @param creationDate Date 470 * @param updateDate Timestamp 471 * @param parameterGroup ParameterGroup 472 * @param status Status 473 * @return newInstance 474 */ 475 public static Parameter newInstance(String name, Boolean isQualitative, Boolean isTaxinomic, Boolean isCalculated, Boolean isAlphanumeric, Date creationDate, Timestamp updateDate, ParameterGroup parameterGroup, Status status) 476 { 477 final Parameter entity = new ParameterImpl(); 478 entity.setName(name); 479 entity.setIsQualitative(isQualitative); 480 entity.setIsTaxinomic(isTaxinomic); 481 entity.setIsCalculated(isCalculated); 482 entity.setIsAlphanumeric(isAlphanumeric); 483 entity.setCreationDate(creationDate); 484 entity.setUpdateDate(updateDate); 485 entity.setParameterGroup(parameterGroup); 486 entity.setStatus(status); 487 return entity; 488 } 489 490 /** 491 * Constructs a new instance of {@link Parameter}, taking all possible properties 492 * (except the identifier(s))as arguments. 493 * @param name String 494 * @param description String 495 * @param isQualitative Boolean 496 * @param isTaxinomic Boolean 497 * @param isCalculated Boolean 498 * @param isAlphanumeric Boolean 499 * @param creationDate Date 500 * @param updateDate Timestamp 501 * @param comments String 502 * @param parameterGroup ParameterGroup 503 * @param status Status 504 * @param qualitativeValues Collection<QualitativeValue> 505 * @return newInstance Parameter 506 */ 507 public static Parameter newInstance(String name, String description, Boolean isQualitative, Boolean isTaxinomic, Boolean isCalculated, Boolean isAlphanumeric, Date creationDate, Timestamp updateDate, String comments, ParameterGroup parameterGroup, Status status, Collection<QualitativeValue> qualitativeValues) 508 { 509 final Parameter entity = new ParameterImpl(); 510 entity.setName(name); 511 entity.setDescription(description); 512 entity.setIsQualitative(isQualitative); 513 entity.setIsTaxinomic(isTaxinomic); 514 entity.setIsCalculated(isCalculated); 515 entity.setIsAlphanumeric(isAlphanumeric); 516 entity.setCreationDate(creationDate); 517 entity.setUpdateDate(updateDate); 518 entity.setComments(comments); 519 entity.setParameterGroup(parameterGroup); 520 entity.setStatus(status); 521 entity.setQualitativeValues(qualitativeValues); 522 return entity; 523 } 524 } 525 526 /** 527 * @see Comparable#compareTo 528 */ 529 public int compareTo(Parameter o) 530 { 531 int cmp = 0; 532 if (this.getCode() != null) 533 { 534 cmp = this.getCode().compareTo(o.getCode()); 535 } 536 else 537 { 538 if (this.getName() != null) 539 { 540 cmp = (cmp != 0 ? cmp : this.getName().compareTo(o.getName())); 541 } 542 if (this.getDescription() != null) 543 { 544 cmp = (cmp != 0 ? cmp : this.getDescription().compareTo(o.getDescription())); 545 } 546 if (this.isIsQualitative() != null) 547 { 548 cmp = (cmp != 0 ? cmp : this.isIsQualitative().compareTo(o.isIsQualitative())); 549 } 550 if (this.isIsTaxinomic() != null) 551 { 552 cmp = (cmp != 0 ? cmp : this.isIsTaxinomic().compareTo(o.isIsTaxinomic())); 553 } 554 if (this.isIsCalculated() != null) 555 { 556 cmp = (cmp != 0 ? cmp : this.isIsCalculated().compareTo(o.isIsCalculated())); 557 } 558 if (this.isIsAlphanumeric() != null) 559 { 560 cmp = (cmp != 0 ? cmp : this.isIsAlphanumeric().compareTo(o.isIsAlphanumeric())); 561 } 562 if (this.getCreationDate() != null) 563 { 564 cmp = (cmp != 0 ? cmp : this.getCreationDate().compareTo(o.getCreationDate())); 565 } 566 if (this.getUpdateDate() != null) 567 { 568 cmp = (cmp != 0 ? cmp : this.getUpdateDate().compareTo(o.getUpdateDate())); 569 } 570 if (this.getComments() != null) 571 { 572 cmp = (cmp != 0 ? cmp : this.getComments().compareTo(o.getComments())); 573 } 574 } 575 return cmp; 576 } 577// HibernateEntity.vsl merge-point 578// Parameter.java merge-point 579}