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 fr.ifremer.adagio.core.dao.referential.ValidityStatus; 033import java.io.Serializable; 034import java.sql.Timestamp; 035import java.util.Collection; 036import java.util.Date; 037import java.util.HashSet; 038 039/** 040 * Quadruplet paramètre/support/méthode/fraction. Ce quadruplet est systématiquement associé aux 041 * résultats et décrit précisemment les conditions de mesure/d'analyse de ceux-ci. 042 */ 043// HibernateEntity.vsl annotations merge-point 044public abstract class Pmfm 045 implements Serializable, Comparable<Pmfm> 046{ 047 /** 048 * The serial version UID of this class. Needed for serialization. 049 */ 050 private static final long serialVersionUID = 610610289820423019L; 051 052 // Generate 12 attributes 053 private Integer id; 054 055 /** 056 * Idenfiant interne. Généré par le système. 057 * @return this.id Integer 058 */ 059 public Integer getId() 060 { 061 return this.id; 062 } 063 064 /** 065 * Idenfiant interne. Généré par le système. 066 * @param idIn Integer 067 */ 068 public void setId(Integer idIn) 069 { 070 this.id = idIn; 071 } 072 073 private Integer signifFiguresNumber; 074 075 /** 076 * Nombre de chiffres significatifs en tout du résultat pour le quadruplet concerné. 077 * @return this.signifFiguresNumber Integer 078 */ 079 public Integer getSignifFiguresNumber() 080 { 081 return this.signifFiguresNumber; 082 } 083 084 /** 085 * Nombre de chiffres significatifs en tout du résultat pour le quadruplet concerné. 086 * @param signifFiguresNumberIn Integer 087 */ 088 public void setSignifFiguresNumber(Integer signifFiguresNumberIn) 089 { 090 this.signifFiguresNumber = signifFiguresNumberIn; 091 } 092 093 private Integer maximumNumberDecimals; 094 095 /** 096 * Nombre de décimales significatives pour le résultat mesuré/analysé suivant le quadruplet lié. 097 * @return this.maximumNumberDecimals Integer 098 */ 099 public Integer getMaximumNumberDecimals() 100 { 101 return this.maximumNumberDecimals; 102 } 103 104 /** 105 * Nombre de décimales significatives pour le résultat mesuré/analysé suivant le quadruplet lié. 106 * @param maximumNumberDecimalsIn Integer 107 */ 108 public void setMaximumNumberDecimals(Integer maximumNumberDecimalsIn) 109 { 110 this.maximumNumberDecimals = maximumNumberDecimalsIn; 111 } 112 113 private Float detectionThreshold; 114 115 /** 116 * Seuil de détection des instruments de mesure et de la méthode associée. 117 * @return this.detectionThreshold Float 118 */ 119 public Float getDetectionThreshold() 120 { 121 return this.detectionThreshold; 122 } 123 124 /** 125 * Seuil de détection des instruments de mesure et de la méthode associée. 126 * @param detectionThresholdIn Float 127 */ 128 public void setDetectionThreshold(Float detectionThresholdIn) 129 { 130 this.detectionThreshold = detectionThresholdIn; 131 } 132 133 private Float minValue; 134 135 /** 136 * Valeur mimimale autorisée par défaut (peut etre redéfini dans les stratégies). 137 * @return this.minValue Float 138 */ 139 public Float getMinValue() 140 { 141 return this.minValue; 142 } 143 144 /** 145 * Valeur mimimale autorisée par défaut (peut etre redéfini dans les stratégies). 146 * @param minValueIn Float 147 */ 148 public void setMinValue(Float minValueIn) 149 { 150 this.minValue = minValueIn; 151 } 152 153 private Float maxValue; 154 155 /** 156 * Valeur maximale autorisée par défaut (peut etre redéfini dans les stratégies). 157 * @return this.maxValue Float 158 */ 159 public Float getMaxValue() 160 { 161 return this.maxValue; 162 } 163 164 /** 165 * Valeur maximale autorisée par défaut (peut etre redéfini dans les stratégies). 166 * @param maxValueIn Float 167 */ 168 public void setMaxValue(Float maxValueIn) 169 { 170 this.maxValue = maxValueIn; 171 } 172 173 private Float precision; 174 175 /** 176 * 177 * @return this.precision Float 178 */ 179 public Float getPrecision() 180 { 181 return this.precision; 182 } 183 184 /** 185 * 186 * @param precisionIn Float 187 */ 188 public void setPrecision(Float precisionIn) 189 { 190 this.precision = precisionIn; 191 } 192 193 private Float defaultValue; 194 195 /** 196 * Précision de la mesure associé pour le PSFM.Typiquement, cette précision est utile lors de la 197 * saisie de plusieursinstruments et de la méthode associée. 198 * @return this.defaultValue Float 199 */ 200 public Float getDefaultValue() 201 { 202 return this.defaultValue; 203 } 204 205 /** 206 * Précision de la mesure associé pour le PSFM.Typiquement, cette précision est utile lors de la 207 * saisie de plusieursinstruments et de la méthode associée. 208 * @param defaultValueIn Float 209 */ 210 public void setDefaultValue(Float defaultValueIn) 211 { 212 this.defaultValue = defaultValueIn; 213 } 214 215 private Date creationDate; 216 217 /** 218 * 219 * @return this.creationDate Date 220 */ 221 public Date getCreationDate() 222 { 223 return this.creationDate; 224 } 225 226 /** 227 * 228 * @param creationDateIn Date 229 */ 230 public void setCreationDate(Date creationDateIn) 231 { 232 this.creationDate = creationDateIn; 233 } 234 235 private String description; 236 237 /** 238 * 239 * @return this.description String 240 */ 241 public String getDescription() 242 { 243 return this.description; 244 } 245 246 /** 247 * 248 * @param descriptionIn String 249 */ 250 public void setDescription(String descriptionIn) 251 { 252 this.description = descriptionIn; 253 } 254 255 private String comments; 256 257 /** 258 * 259 * @return this.comments String 260 */ 261 public String getComments() 262 { 263 return this.comments; 264 } 265 266 /** 267 * 268 * @param commentsIn String 269 */ 270 public void setComments(String commentsIn) 271 { 272 this.comments = commentsIn; 273 } 274 275 private Timestamp updateDate; 276 277 /** 278 * 279 * @return this.updateDate Timestamp 280 */ 281 public Timestamp getUpdateDate() 282 { 283 return this.updateDate; 284 } 285 286 /** 287 * 288 * @param updateDateIn Timestamp 289 */ 290 public void setUpdateDate(Timestamp updateDateIn) 291 { 292 this.updateDate = updateDateIn; 293 } 294 295 // Generate 17 associations 296 private ValidityStatus validityStatus; 297 298 /** 299 * Etat de validation d'une donnée du référentiel. Utile pour les responsables de référentiel. 300 * Validity status of a referential data. 301 * @return this.validityStatus ValidityStatus 302 */ 303 public ValidityStatus getValidityStatus() 304 { 305 return this.validityStatus; 306 } 307 308 /** 309 * Etat de validation d'une donnée du référentiel. Utile pour les responsables de référentiel. 310 * Validity status of a referential data. 311 * @param validityStatusIn ValidityStatus 312 */ 313 public void setValidityStatus(ValidityStatus validityStatusIn) 314 { 315 this.validityStatus = validityStatusIn; 316 } 317 318 private Matrix matrix; 319 320 /** 321 * Le support est un composant du milieu sur lequel porte l'investigation. Les supports sont, 322 * par 323 * exemple : 324 * - un engin, 325 * - la mer (ou autre environnement), 326 * - bivalve (moule, huître, coque...) 327 * - crustacé (crevette...) 328 * - poisson (merlu, sardine...) 329 * - gastéropode (bigorneau, littorine...) 330 * - echinoderme (oursin...) 331 * - masse d'eau, eau brute 332 * - eau filtrée 333 * - ... 334 * Le support ne correspond pas au support réellement analysé. En effet, il peut s'agir d'une 335 * analyse 336 * sur une fraction du support (par exemple, pour le poisson, l'otolite,… ou pour un engin, le 337 * bras). 338 * Nombre de lignes : 20 339 * @return this.matrix Matrix 340 */ 341 public Matrix getMatrix() 342 { 343 return this.matrix; 344 } 345 346 /** 347 * Le support est un composant du milieu sur lequel porte l'investigation. Les supports sont, 348 * par 349 * exemple : 350 * - un engin, 351 * - la mer (ou autre environnement), 352 * - bivalve (moule, huître, coque...) 353 * - crustacé (crevette...) 354 * - poisson (merlu, sardine...) 355 * - gastéropode (bigorneau, littorine...) 356 * - echinoderme (oursin...) 357 * - masse d'eau, eau brute 358 * - eau filtrée 359 * - ... 360 * Le support ne correspond pas au support réellement analysé. En effet, il peut s'agir d'une 361 * analyse 362 * sur une fraction du support (par exemple, pour le poisson, l'otolite,… ou pour un engin, le 363 * bras). 364 * Nombre de lignes : 20 365 * @param matrixIn Matrix 366 */ 367 public void setMatrix(Matrix matrixIn) 368 { 369 this.matrix = matrixIn; 370 } 371 372 private Method method; 373 374 /** 375 * Les méthodes sont rassemblées dans une liste qui couvre tous les domaines pour lesquels il 376 * existe un 377 * paramètre. 378 * La liste des méthodes est générique et porte sur toutes les phases du processus de mesure des 379 * paramètres. Chaque méthode n'est pas non plus systématiquement spécifique à l'une de ces 380 * phases ou à 381 * une nature particulière de paramètre. En effet, une méthode peut couvrir tout le cycle du 382 * processus 383 * et/ou être utilisable pour une phase quelle que soit la nature du paramètre. 384 * Les méthodes peuvent être référencées par les paramètres à différentes phases de leur 385 * processus de 386 * mesure que sont : 387 * pour les paramètres biologique : 388 * - le prélèvement et l'échantillonnage ; 389 * - la conservation et le transport ; 390 * - le fractionnement ; 391 * - l'analyse ; 392 * pour les paramètres environnementaux : 393 * - l'observation ; 394 * @return this.method Method 395 */ 396 public Method getMethod() 397 { 398 return this.method; 399 } 400 401 /** 402 * Les méthodes sont rassemblées dans une liste qui couvre tous les domaines pour lesquels il 403 * existe un 404 * paramètre. 405 * La liste des méthodes est générique et porte sur toutes les phases du processus de mesure des 406 * paramètres. Chaque méthode n'est pas non plus systématiquement spécifique à l'une de ces 407 * phases ou à 408 * une nature particulière de paramètre. En effet, une méthode peut couvrir tout le cycle du 409 * processus 410 * et/ou être utilisable pour une phase quelle que soit la nature du paramètre. 411 * Les méthodes peuvent être référencées par les paramètres à différentes phases de leur 412 * processus de 413 * mesure que sont : 414 * pour les paramètres biologique : 415 * - le prélèvement et l'échantillonnage ; 416 * - la conservation et le transport ; 417 * - le fractionnement ; 418 * - l'analyse ; 419 * pour les paramètres environnementaux : 420 * - l'observation ; 421 * @param methodIn Method 422 */ 423 public void setMethod(Method methodIn) 424 { 425 this.method = methodIn; 426 } 427 428 private Collection<QualitativeValue> qualitativeValues = new HashSet<QualitativeValue>(); 429 430 /** 431 * Liste des valeurs qualitatives pour un PSFM.Il s'agit d’une sous-liste des valeurs 432 * qualitatives du paramètre. 433 * @return this.qualitativeValues Collection<QualitativeValue> 434 */ 435 public Collection<QualitativeValue> getQualitativeValues() 436 { 437 return this.qualitativeValues; 438 } 439 440 /** 441 * Liste des valeurs qualitatives pour un PSFM.Il s'agit d’une sous-liste des valeurs 442 * qualitatives du paramètre. 443 * @param qualitativeValuesIn Collection<QualitativeValue> 444 */ 445 public void setQualitativeValues(Collection<QualitativeValue> qualitativeValuesIn) 446 { 447 this.qualitativeValues = qualitativeValuesIn; 448 } 449 450 /** 451 * Liste des valeurs qualitatives pour un PSFM.Il s'agit d’une sous-liste des valeurs 452 * qualitatives du paramètre. 453 * @param elementToAdd QualitativeValue 454 * @return <tt>true</tt> if this collection changed as a result of the 455 * call 456 */ 457 public boolean addQualitativeValues(QualitativeValue elementToAdd) 458 { 459 return this.qualitativeValues.add(elementToAdd); 460 } 461 462 /** 463 * Liste des valeurs qualitatives pour un PSFM.Il s'agit d’une sous-liste des valeurs 464 * qualitatives du paramètre. 465 * @param elementToRemove QualitativeValue 466 * @return <tt>true</tt> if this collection changed as a result of the 467 * call 468 */ 469 public boolean removeQualitativeValues(QualitativeValue elementToRemove) 470 { 471 return this.qualitativeValues.remove(elementToRemove); 472 } 473 474 private Fraction fraction; 475 476 /** 477 * Une fraction analysée est un composant du support sur lequel porte l'analyse. 478 * Les fractions analysées sont généralement des fractions "organiques", au sens d'une 479 * classification 480 * par partie d'un même organisme, 481 * ex : foie, écaille, reins, dents, otolithe... 482 * Elles peuvent aussi être un sous ensemble quelconque du support. Par exemple, dans le cas des 483 * engins 484 * : le bras, … 485 * Les fractions dites "systématiques", au sens d'une classification systématique (ex : poisson 486 * : 487 * Cyprinidae / Cyprinus / Cyprinus carpio...) ne sont pas considérées comme des fractions au 488 * sens de 489 * l'entité, mais comme une précision apportée sur l'individu. Représentées par les entités 490 * "taxon" et 491 * "groupe de taxon", elles ne font pas partie de la liste des fractions analysées. 492 * Etant une liste de référence, une procédure stricte pour la création de nouvelles fractions 493 * analysées pourra être mise en place (On pourra s'inspirer des procédures utilisées dans 494 * Quadrige2, 495 * qui utilisent le référentiel national du SANDRE). 496 * Nombre de lignes : 10 497 * @return this.fraction Fraction 498 */ 499 public Fraction getFraction() 500 { 501 return this.fraction; 502 } 503 504 /** 505 * Une fraction analysée est un composant du support sur lequel porte l'analyse. 506 * Les fractions analysées sont généralement des fractions "organiques", au sens d'une 507 * classification 508 * par partie d'un même organisme, 509 * ex : foie, écaille, reins, dents, otolithe... 510 * Elles peuvent aussi être un sous ensemble quelconque du support. Par exemple, dans le cas des 511 * engins 512 * : le bras, … 513 * Les fractions dites "systématiques", au sens d'une classification systématique (ex : poisson 514 * : 515 * Cyprinidae / Cyprinus / Cyprinus carpio...) ne sont pas considérées comme des fractions au 516 * sens de 517 * l'entité, mais comme une précision apportée sur l'individu. Représentées par les entités 518 * "taxon" et 519 * "groupe de taxon", elles ne font pas partie de la liste des fractions analysées. 520 * Etant une liste de référence, une procédure stricte pour la création de nouvelles fractions 521 * analysées pourra être mise en place (On pourra s'inspirer des procédures utilisées dans 522 * Quadrige2, 523 * qui utilisent le référentiel national du SANDRE). 524 * Nombre de lignes : 10 525 * @param fractionIn Fraction 526 */ 527 public void setFraction(Fraction fractionIn) 528 { 529 this.fraction = fractionIn; 530 } 531 532 private Parameter parameter; 533 534 /** 535 * Un paramètre est une propriété du milieu ou d'un élément du milieu qui contribue à en 536 * apprécier les 537 * caractéristiques et/ou la qualité et/ou l'aptitude à des usages. 538 * Le paramètre se décline en trois types : quantitatif, qualitatif ou libre. 539 * Le type quantitatif se rapporte aux paramètres qui ont une infinité de résultats numériques. 540 * Le type qualitatif se rapporte aux paramètres qui ne prennent qu'un nombre limité de valeurs 541 * prédéfinies pour chacun d'eux. 542 * Le type libre, ou alphanumérique, correspond aux paramètres de valeurs alphanumériques, sans 543 * limite 544 * de valeurs possibles (hormis la longueur de la chaine : 40 max). 545 * Ces trois types sont mutuellement exclusifs. 546 * Exemple de paramètre : 547 * • Taille (numérique) 548 * • Age (numérique) 549 * • Sexe (qualitatif) 550 * • Catégorie commerciale (qualitatif) 551 * • Présentation commerciale (qualitatif) 552 * • Vrac / Hors Vrac (qualitatif) 553 * • Rejet / Débarquement (qualitatif) (Discard/Landing) 554 * • Stade de maturité (qualitatif) (Maturity stage) 555 * • Numéro de contrat (libre - alphanumérique) 556 * Cette liste n’est pas exhaustive. 557 * Nombre de lignes : 130 558 * @return this.parameter Parameter 559 */ 560 public Parameter getParameter() 561 { 562 return this.parameter; 563 } 564 565 /** 566 * Un paramètre est une propriété du milieu ou d'un élément du milieu qui contribue à en 567 * apprécier les 568 * caractéristiques et/ou la qualité et/ou l'aptitude à des usages. 569 * Le paramètre se décline en trois types : quantitatif, qualitatif ou libre. 570 * Le type quantitatif se rapporte aux paramètres qui ont une infinité de résultats numériques. 571 * Le type qualitatif se rapporte aux paramètres qui ne prennent qu'un nombre limité de valeurs 572 * prédéfinies pour chacun d'eux. 573 * Le type libre, ou alphanumérique, correspond aux paramètres de valeurs alphanumériques, sans 574 * limite 575 * de valeurs possibles (hormis la longueur de la chaine : 40 max). 576 * Ces trois types sont mutuellement exclusifs. 577 * Exemple de paramètre : 578 * • Taille (numérique) 579 * • Age (numérique) 580 * • Sexe (qualitatif) 581 * • Catégorie commerciale (qualitatif) 582 * • Présentation commerciale (qualitatif) 583 * • Vrac / Hors Vrac (qualitatif) 584 * • Rejet / Débarquement (qualitatif) (Discard/Landing) 585 * • Stade de maturité (qualitatif) (Maturity stage) 586 * • Numéro de contrat (libre - alphanumérique) 587 * Cette liste n’est pas exhaustive. 588 * Nombre de lignes : 130 589 * @param parameterIn Parameter 590 */ 591 public void setParameter(Parameter parameterIn) 592 { 593 this.parameter = parameterIn; 594 } 595 596 private AggregationLevel aggregationLevel; 597 598 /** 599 * Niveau (ou période) d'agrégation de la donnée. 600 * Par exemple : 601 * - aucune (pas d'agrégation) 602 * - jour, 603 * - mois, 604 * - année 605 * - marée 606 * - opération 607 * - zone de peche (cas des séquences de peche ?) 608 * Utiliser une période d'agrégation permet de définir des valeurs moyennes sur une période 609 * d'agrégation (par exemple : le mois) indépendamment de la période concernée (par exemple : 610 * une 611 * année). 612 * Exemple : 613 * - moyenne mensuelle sur l'année, du nombre d'engin levé par jour : 614 * - paramètre : nombre d'engin levé 615 * - niveau d'agrégation du PSFM : jour 616 * - période concerné : 01/01/XX au 31/12/XX : définie au niveau de l'entité à laquelle est 617 * rattachée 618 * la mesure (exemple : la marée, l'opération, les caractéristiques d'utilisation, etc.). 619 * - période d'agrégation sur la mesure (xxxMeasurement) : mois 620 * @return this.aggregationLevel AggregationLevel 621 */ 622 public AggregationLevel getAggregationLevel() 623 { 624 return this.aggregationLevel; 625 } 626 627 /** 628 * Niveau (ou période) d'agrégation de la donnée. 629 * Par exemple : 630 * - aucune (pas d'agrégation) 631 * - jour, 632 * - mois, 633 * - année 634 * - marée 635 * - opération 636 * - zone de peche (cas des séquences de peche ?) 637 * Utiliser une période d'agrégation permet de définir des valeurs moyennes sur une période 638 * d'agrégation (par exemple : le mois) indépendamment de la période concernée (par exemple : 639 * une 640 * année). 641 * Exemple : 642 * - moyenne mensuelle sur l'année, du nombre d'engin levé par jour : 643 * - paramètre : nombre d'engin levé 644 * - niveau d'agrégation du PSFM : jour 645 * - période concerné : 01/01/XX au 31/12/XX : définie au niveau de l'entité à laquelle est 646 * rattachée 647 * la mesure (exemple : la marée, l'opération, les caractéristiques d'utilisation, etc.). 648 * - période d'agrégation sur la mesure (xxxMeasurement) : mois 649 * @param aggregationLevelIn AggregationLevel 650 */ 651 public void setAggregationLevel(AggregationLevel aggregationLevelIn) 652 { 653 this.aggregationLevel = aggregationLevelIn; 654 } 655 656 private Status status; 657 658 /** 659 * Pour les données du référentiel, information permettant de déterminer si une donnée est 660 * valide, 661 * obsolète ou temporaire. 662 * - obsolète (=inactif) : '0' 663 * - valide (=actif) : '1' 664 * - temporaire : '2' 665 * - en cours de suppression : '3' 666 * - : '4' 667 * note : on a préfère ici 'valide' au terme 'actif' (utilisé dans Harmonie), pour ne pas 668 * confondre 669 * avec par exemple l'activité d'un navire sur un mois. 670 * @return this.status Status 671 */ 672 public Status getStatus() 673 { 674 return this.status; 675 } 676 677 /** 678 * Pour les données du référentiel, information permettant de déterminer si une donnée est 679 * valide, 680 * obsolète ou temporaire. 681 * - obsolète (=inactif) : '0' 682 * - valide (=actif) : '1' 683 * - temporaire : '2' 684 * - en cours de suppression : '3' 685 * - : '4' 686 * note : on a préfère ici 'valide' au terme 'actif' (utilisé dans Harmonie), pour ne pas 687 * confondre 688 * avec par exemple l'activité d'un navire sur un mois. 689 * @param statusIn Status 690 */ 691 public void setStatus(Status statusIn) 692 { 693 this.status = statusIn; 694 } 695 696 private Unit unit; 697 698 /** 699 * Unité d'une mesure. 700 * Nombre de lignes : 30 701 * @return this.unit Unit 702 */ 703 public Unit getUnit() 704 { 705 return this.unit; 706 } 707 708 /** 709 * Unité d'une mesure. 710 * Nombre de lignes : 30 711 * @param unitIn Unit 712 */ 713 public void setUnit(Unit unitIn) 714 { 715 this.unit = unitIn; 716 } 717 718 /** 719 * Returns <code>true</code> if the argument is an Pmfm instance and all identifiers for this entity 720 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 721 */ 722 @Override 723 public boolean equals(Object object) 724 { 725 if (this == object) 726 { 727 return true; 728 } 729 if (!(object instanceof Pmfm)) 730 { 731 return false; 732 } 733 final Pmfm that = (Pmfm)object; 734 if (this.id == null || that.getId() == null || !this.id.equals(that.getId())) 735 { 736 return false; 737 } 738 return true; 739 } 740 741 /** 742 * Returns a hash code based on this entity's identifiers. 743 */ 744 @Override 745 public int hashCode() 746 { 747 int hashCode = 0; 748 hashCode = 29 * hashCode + (this.id == null ? 0 : this.id.hashCode()); 749 750 return hashCode; 751 } 752 753 /** 754 * Constructs new instances of {@link Pmfm}. 755 */ 756 public static final class Factory 757 { 758 /** 759 * Constructs a new instance of {@link Pmfm}. 760 * @return new PmfmImpl() 761 */ 762 public static Pmfm newInstance() 763 { 764 return new PmfmImpl(); 765 } 766 767 /** 768 * Constructs a new instance of {@link Pmfm}, taking all required and/or 769 * read-only properties as arguments, except for identifiers. 770 * @param creationDate Date 771 * @param updateDate Timestamp 772 * @param validityStatus ValidityStatus 773 * @param matrix Matrix 774 * @param method Method 775 * @param fraction Fraction 776 * @param parameter Parameter 777 * @param aggregationLevel AggregationLevel 778 * @param status Status 779 * @param unit Unit 780 * @return newInstance 781 */ 782 public static Pmfm newInstance(Date creationDate, Timestamp updateDate, ValidityStatus validityStatus, Matrix matrix, Method method, Fraction fraction, Parameter parameter, AggregationLevel aggregationLevel, Status status, Unit unit) 783 { 784 final Pmfm entity = new PmfmImpl(); 785 entity.setCreationDate(creationDate); 786 entity.setUpdateDate(updateDate); 787 entity.setValidityStatus(validityStatus); 788 entity.setMatrix(matrix); 789 entity.setMethod(method); 790 entity.setFraction(fraction); 791 entity.setParameter(parameter); 792 entity.setAggregationLevel(aggregationLevel); 793 entity.setStatus(status); 794 entity.setUnit(unit); 795 return entity; 796 } 797 798 /** 799 * Constructs a new instance of {@link Pmfm}, taking all possible properties 800 * (except the identifier(s))as arguments. 801 * @param signifFiguresNumber Integer 802 * @param maximumNumberDecimals Integer 803 * @param detectionThreshold Float 804 * @param minValue Float 805 * @param maxValue Float 806 * @param precision Float 807 * @param defaultValue Float 808 * @param creationDate Date 809 * @param description String 810 * @param comments String 811 * @param updateDate Timestamp 812 * @param validityStatus ValidityStatus 813 * @param matrix Matrix 814 * @param method Method 815 * @param qualitativeValues Collection<QualitativeValue> 816 * @param fraction Fraction 817 * @param parameter Parameter 818 * @param aggregationLevel AggregationLevel 819 * @param status Status 820 * @param unit Unit 821 * @return newInstance Pmfm 822 */ 823 public static Pmfm newInstance(Integer signifFiguresNumber, Integer maximumNumberDecimals, Float detectionThreshold, Float minValue, Float maxValue, Float precision, Float defaultValue, Date creationDate, String description, String comments, Timestamp updateDate, ValidityStatus validityStatus, Matrix matrix, Method method, Collection<QualitativeValue> qualitativeValues, Fraction fraction, Parameter parameter, AggregationLevel aggregationLevel, Status status, Unit unit) 824 { 825 final Pmfm entity = new PmfmImpl(); 826 entity.setSignifFiguresNumber(signifFiguresNumber); 827 entity.setMaximumNumberDecimals(maximumNumberDecimals); 828 entity.setDetectionThreshold(detectionThreshold); 829 entity.setMinValue(minValue); 830 entity.setMaxValue(maxValue); 831 entity.setPrecision(precision); 832 entity.setDefaultValue(defaultValue); 833 entity.setCreationDate(creationDate); 834 entity.setDescription(description); 835 entity.setComments(comments); 836 entity.setUpdateDate(updateDate); 837 entity.setValidityStatus(validityStatus); 838 entity.setMatrix(matrix); 839 entity.setMethod(method); 840 entity.setQualitativeValues(qualitativeValues); 841 entity.setFraction(fraction); 842 entity.setParameter(parameter); 843 entity.setAggregationLevel(aggregationLevel); 844 entity.setStatus(status); 845 entity.setUnit(unit); 846 return entity; 847 } 848 } 849 850 /** 851 * @see Comparable#compareTo 852 */ 853 public int compareTo(Pmfm o) 854 { 855 int cmp = 0; 856 if (this.getId() != null) 857 { 858 cmp = this.getId().compareTo(o.getId()); 859 } 860 else 861 { 862 if (this.getSignifFiguresNumber() != null) 863 { 864 cmp = (cmp != 0 ? cmp : this.getSignifFiguresNumber().compareTo(o.getSignifFiguresNumber())); 865 } 866 if (this.getMaximumNumberDecimals() != null) 867 { 868 cmp = (cmp != 0 ? cmp : this.getMaximumNumberDecimals().compareTo(o.getMaximumNumberDecimals())); 869 } 870 if (this.getDetectionThreshold() != null) 871 { 872 cmp = (cmp != 0 ? cmp : this.getDetectionThreshold().compareTo(o.getDetectionThreshold())); 873 } 874 if (this.getMinValue() != null) 875 { 876 cmp = (cmp != 0 ? cmp : this.getMinValue().compareTo(o.getMinValue())); 877 } 878 if (this.getMaxValue() != null) 879 { 880 cmp = (cmp != 0 ? cmp : this.getMaxValue().compareTo(o.getMaxValue())); 881 } 882 if (this.getPrecision() != null) 883 { 884 cmp = (cmp != 0 ? cmp : this.getPrecision().compareTo(o.getPrecision())); 885 } 886 if (this.getDefaultValue() != null) 887 { 888 cmp = (cmp != 0 ? cmp : this.getDefaultValue().compareTo(o.getDefaultValue())); 889 } 890 if (this.getCreationDate() != null) 891 { 892 cmp = (cmp != 0 ? cmp : this.getCreationDate().compareTo(o.getCreationDate())); 893 } 894 if (this.getDescription() != null) 895 { 896 cmp = (cmp != 0 ? cmp : this.getDescription().compareTo(o.getDescription())); 897 } 898 if (this.getComments() != null) 899 { 900 cmp = (cmp != 0 ? cmp : this.getComments().compareTo(o.getComments())); 901 } 902 if (this.getUpdateDate() != null) 903 { 904 cmp = (cmp != 0 ? cmp : this.getUpdateDate().compareTo(o.getUpdateDate())); 905 } 906 } 907 return cmp; 908 } 909// HibernateEntity.vsl merge-point 910// Pmfm.java merge-point 911}