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.data.aquaculture; 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.program.Program; 29 import fr.ifremer.quadrige3.core.dao.administration.user.Department; 30 import fr.ifremer.quadrige3.core.dao.administration.user.Quser; 31 import fr.ifremer.quadrige3.core.dao.referential.QualityFlag; 32 import fr.ifremer.quadrige3.core.dao.referential.taxon.ReferenceTaxon; 33 import java.io.Serializable; 34 import java.sql.Timestamp; 35 import java.util.Collection; 36 import java.util.Date; 37 import java.util.HashSet; 38 39 /** 40 * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs 41 * paramètres sur une même population de mollusques répartis en lots sur le littoral français. Cela 42 * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de mollusques, 43 * que l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots 44 * sur différents lieux de mesures. 45 */ 46 // HibernateEntity.vsl annotations merge-point 47 public abstract class InitialPopulation 48 implements Serializable, Comparable<InitialPopulation> 49 { 50 /** 51 * The serial version UID of this class. Needed for serialization. 52 */ 53 private static final long serialVersionUID = 8071304185305736785L; 54 55 // Generate 12 attributes 56 private Integer initPopId; 57 58 /** 59 * Identifiant de la population initiale 60 * @return this.initPopId Integer 61 */ 62 public Integer getInitPopId() 63 { 64 return this.initPopId; 65 } 66 67 /** 68 * Identifiant de la population initiale 69 * @param initPopIdIn Integer 70 */ 71 public void setInitPopId(Integer initPopIdIn) 72 { 73 this.initPopId = initPopIdIn; 74 } 75 76 private String initPopNm; 77 78 /** 79 * Libellé de la population initiale 80 * @return this.initPopNm String 81 */ 82 public String getInitPopNm() 83 { 84 return this.initPopNm; 85 } 86 87 /** 88 * Libellé de la population initiale 89 * @param initPopNmIn String 90 */ 91 public void setInitPopNm(String initPopNmIn) 92 { 93 this.initPopNm = initPopNmIn; 94 } 95 96 private String initPopLb; 97 98 /** 99 * Mnémonique de la population initiale 100 * @return this.initPopLb String 101 */ 102 public String getInitPopLb() 103 { 104 return this.initPopLb; 105 } 106 107 /** 108 * Mnémonique de la population initiale 109 * @param initPopLbIn String 110 */ 111 public void setInitPopLb(String initPopLbIn) 112 { 113 this.initPopLb = initPopLbIn; 114 } 115 116 private String initPopCm; 117 118 /** 119 * Commentaire sur la population initiale 120 * @return this.initPopCm String 121 */ 122 public String getInitPopCm() 123 { 124 return this.initPopCm; 125 } 126 127 /** 128 * Commentaire sur la population initiale 129 * @param initPopCmIn String 130 */ 131 public void setInitPopCm(String initPopCmIn) 132 { 133 this.initPopCm = initPopCmIn; 134 } 135 136 private Date initPopQualifDt; 137 138 /** 139 * Date de qualification de la population initiale 140 * @return this.initPopQualifDt Date 141 */ 142 public Date getInitPopQualifDt() 143 { 144 return this.initPopQualifDt; 145 } 146 147 /** 148 * Date de qualification de la population initiale 149 * @param initPopQualifDtIn Date 150 */ 151 public void setInitPopQualifDt(Date initPopQualifDtIn) 152 { 153 this.initPopQualifDt = initPopQualifDtIn; 154 } 155 156 private String initPopQualifCm; 157 158 /** 159 * Commentaire de qualification de la population initiale 160 * @return this.initPopQualifCm String 161 */ 162 public String getInitPopQualifCm() 163 { 164 return this.initPopQualifCm; 165 } 166 167 /** 168 * Commentaire de qualification de la population initiale 169 * @param initPopQualifCmIn String 170 */ 171 public void setInitPopQualifCm(String initPopQualifCmIn) 172 { 173 this.initPopQualifCm = initPopQualifCmIn; 174 } 175 176 private Date initPopValidDt; 177 178 /** 179 * Date de validation de la population initiale 180 * @return this.initPopValidDt Date 181 */ 182 public Date getInitPopValidDt() 183 { 184 return this.initPopValidDt; 185 } 186 187 /** 188 * Date de validation de la population initiale 189 * @param initPopValidDtIn Date 190 */ 191 public void setInitPopValidDt(Date initPopValidDtIn) 192 { 193 this.initPopValidDt = initPopValidDtIn; 194 } 195 196 private Date initPopControlDt; 197 198 /** 199 * Date de controle de la population initiale 200 * @return this.initPopControlDt Date 201 */ 202 public Date getInitPopControlDt() 203 { 204 return this.initPopControlDt; 205 } 206 207 /** 208 * Date de controle de la population initiale 209 * @param initPopControlDtIn Date 210 */ 211 public void setInitPopControlDt(Date initPopControlDtIn) 212 { 213 this.initPopControlDt = initPopControlDtIn; 214 } 215 216 private Date initPopStartDt; 217 218 /** 219 * Date de mise à disposition de la population initiale 220 * @return this.initPopStartDt Date 221 */ 222 public Date getInitPopStartDt() 223 { 224 return this.initPopStartDt; 225 } 226 227 /** 228 * Date de mise à disposition de la population initiale 229 * @param initPopStartDtIn Date 230 */ 231 public void setInitPopStartDt(Date initPopStartDtIn) 232 { 233 this.initPopStartDt = initPopStartDtIn; 234 } 235 236 private Integer initPopBiometricIndivNb; 237 238 /** 239 * Nombre d'individus pour les mesures de biométrie 240 * @return this.initPopBiometricIndivNb Integer 241 */ 242 public Integer getInitPopBiometricIndivNb() 243 { 244 return this.initPopBiometricIndivNb; 245 } 246 247 /** 248 * Nombre d'individus pour les mesures de biométrie 249 * @param initPopBiometricIndivNbIn Integer 250 */ 251 public void setInitPopBiometricIndivNb(Integer initPopBiometricIndivNbIn) 252 { 253 this.initPopBiometricIndivNb = initPopBiometricIndivNbIn; 254 } 255 256 private Timestamp updateDt; 257 258 /** 259 * Date de maj 260 * @return this.updateDt Timestamp 261 */ 262 public Timestamp getUpdateDt() 263 { 264 return this.updateDt; 265 } 266 267 /** 268 * Date de maj 269 * @param updateDtIn Timestamp 270 */ 271 public void setUpdateDt(Timestamp updateDtIn) 272 { 273 this.updateDt = updateDtIn; 274 } 275 276 private Integer remoteId; 277 278 /** 279 * 280 * @return this.remoteId Integer 281 */ 282 public Integer getRemoteId() 283 { 284 return this.remoteId; 285 } 286 287 /** 288 * 289 * @param remoteIdIn Integer 290 */ 291 public void setRemoteId(Integer remoteIdIn) 292 { 293 this.remoteId = remoteIdIn; 294 } 295 296 // Generate 10 associations 297 private Ploidy ploidy; 298 299 /** 300 * La ploïdie d'une cellule caractérise le nombre et l'organisation de ses chromosomes 301 * @return this.ploidy Ploidy 302 */ 303 public Ploidy getPloidy() 304 { 305 return this.ploidy; 306 } 307 308 /** 309 * La ploïdie d'une cellule caractérise le nombre et l'organisation de ses chromosomes 310 * @param ploidyIn Ploidy 311 */ 312 public void setPloidy(Ploidy ploidyIn) 313 { 314 this.ploidy = ploidyIn; 315 } 316 317 private Collection<Department> departments = new HashSet<Department>(); 318 319 /** 320 * Liste les départements ou services auxquels sont rattachés les agents 321 * @return this.departments Collection<Department> 322 */ 323 public Collection<Department> getDepartments() 324 { 325 return this.departments; 326 } 327 328 /** 329 * Liste les départements ou services auxquels sont rattachés les agents 330 * @param departmentsIn Collection<Department> 331 */ 332 public void setDepartments(Collection<Department> departmentsIn) 333 { 334 this.departments = departmentsIn; 335 } 336 337 /** 338 * Liste les départements ou services auxquels sont rattachés les agents 339 * @param elementToAdd Department 340 * @return <tt>true</tt> if this collection changed as a result of the 341 * call 342 */ 343 public boolean addDepartments(Department elementToAdd) 344 { 345 return this.departments.add(elementToAdd); 346 } 347 348 /** 349 * Liste les départements ou services auxquels sont rattachés les agents 350 * @param elementToRemove Department 351 * @return <tt>true</tt> if this collection changed as a result of the 352 * call 353 */ 354 public boolean removeDepartments(Department elementToRemove) 355 { 356 return this.departments.remove(elementToRemove); 357 } 358 359 private Collection<HistoricalAccount> historicalAccounts = new HashSet<HistoricalAccount>(); 360 361 /** 362 * Ligne d'historique 363 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une 364 * étude. Ce 365 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une 366 * ligne 367 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de 368 * début de 369 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un 370 * type de 371 * phase d'élevag 372 * @return this.historicalAccounts Collection<HistoricalAccount> 373 */ 374 public Collection<HistoricalAccount> getHistoricalAccounts() 375 { 376 return this.historicalAccounts; 377 } 378 379 /** 380 * Ligne d'historique 381 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une 382 * étude. Ce 383 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une 384 * ligne 385 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de 386 * début de 387 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un 388 * type de 389 * phase d'élevag 390 * @param historicalAccountsIn Collection<HistoricalAccount> 391 */ 392 public void setHistoricalAccounts(Collection<HistoricalAccount> historicalAccountsIn) 393 { 394 this.historicalAccounts = historicalAccountsIn; 395 } 396 397 /** 398 * Ligne d'historique 399 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une 400 * étude. Ce 401 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une 402 * ligne 403 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de 404 * début de 405 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un 406 * type de 407 * phase d'élevag 408 * @param elementToAdd HistoricalAccount 409 * @return <tt>true</tt> if this collection changed as a result of the 410 * call 411 */ 412 public boolean addHistoricalAccounts(HistoricalAccount elementToAdd) 413 { 414 return this.historicalAccounts.add(elementToAdd); 415 } 416 417 /** 418 * Ligne d'historique 419 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une 420 * étude. Ce 421 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une 422 * ligne 423 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de 424 * début de 425 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un 426 * type de 427 * phase d'élevag 428 * @param elementToRemove HistoricalAccount 429 * @return <tt>true</tt> if this collection changed as a result of the 430 * call 431 */ 432 public boolean removeHistoricalAccounts(HistoricalAccount elementToRemove) 433 { 434 return this.historicalAccounts.remove(elementToRemove); 435 } 436 437 private Collection<Program> programs = new HashSet<Program>(); 438 439 /** 440 * Activités à l'origine de la collecte d'un ensemble cohérent de données. 441 * @return this.programs Collection<Program> 442 */ 443 public Collection<Program> getPrograms() 444 { 445 return this.programs; 446 } 447 448 /** 449 * Activités à l'origine de la collecte d'un ensemble cohérent de données. 450 * @param programsIn Collection<Program> 451 */ 452 public void setPrograms(Collection<Program> programsIn) 453 { 454 this.programs = programsIn; 455 } 456 457 /** 458 * Activités à l'origine de la collecte d'un ensemble cohérent de données. 459 * @param elementToAdd Program 460 * @return <tt>true</tt> if this collection changed as a result of the 461 * call 462 */ 463 public boolean addPrograms(Program elementToAdd) 464 { 465 return this.programs.add(elementToAdd); 466 } 467 468 /** 469 * Activités à l'origine de la collecte d'un ensemble cohérent de données. 470 * @param elementToRemove Program 471 * @return <tt>true</tt> if this collection changed as a result of the 472 * call 473 */ 474 public boolean removePrograms(Program elementToRemove) 475 { 476 return this.programs.remove(elementToRemove); 477 } 478 479 private QualityFlag qualityFlag; 480 481 /** 482 * Liste des niveaux de qualification. 483 * @return this.qualityFlag QualityFlag 484 */ 485 public QualityFlag getQualityFlag() 486 { 487 return this.qualityFlag; 488 } 489 490 /** 491 * Liste des niveaux de qualification. 492 * @param qualityFlagIn QualityFlag 493 */ 494 public void setQualityFlag(QualityFlag qualityFlagIn) 495 { 496 this.qualityFlag = qualityFlagIn; 497 } 498 499 private ReferenceTaxon referenceTaxon; 500 501 /** 502 * Liste des taxons qui sont la référence. 503 * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment 504 * et ne 505 * plus l'être par la suite. 506 * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont 507 * référents à un moment mais ne peuvent plus l'être par la suite. 508 * Le fonctionnement dans la table TAXON_NAME est le suivant : 509 * - REF_TAXON_ID est toujours renseigné 510 * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il 511 * s'agit d'un 512 * taxon virtuel) 513 * - sinon c'est un synonyme 514 * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le 515 * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID 516 * NB : c'était le comportement initialement prévu. 517 * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2, 518 * le taxon 519 * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes 520 * et les 521 * résultats qu'il pouvait avoir). 522 * Ce mécanisme a été adopté car il fallait distinguer 2 cas : 523 * 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 524 * alors 525 * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres 526 * synonymes, résultats... 527 * 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 528 * qui 529 * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1 530 * pour 531 * R2 est nécessaire 532 * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on 533 * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les 534 * référents 535 * @return this.referenceTaxon ReferenceTaxon 536 */ 537 public ReferenceTaxon getReferenceTaxon() 538 { 539 return this.referenceTaxon; 540 } 541 542 /** 543 * Liste des taxons qui sont la référence. 544 * l'ID référent est indépendant des ID taxon car les taxons peuvent être référents à un moment 545 * et ne 546 * plus l'être par la suite. 547 * Toutes les données du système doivent donc être reliées au référent et non au taxon qui sont 548 * référents à un moment mais ne peuvent plus l'être par la suite. 549 * Le fonctionnement dans la table TAXON_NAME est le suivant : 550 * - REF_TAXON_ID est toujours renseigné 551 * - si TAXON_NAME_IS_REFER est à vrai, il s'agit d'un taxon référent (toujours le cas s'il 552 * s'agit d'un 553 * taxon virtuel) 554 * - sinon c'est un synonyme 555 * Un taxon référent qui devient synonyme voit donc son statut TAXON_NAME_IS_REFER changer et le 556 * nouveau taxon référent qui le remplace récupère l'information REF_TAXON_ID 557 * NB : c'était le comportement initialement prévu. 558 * En réalité, lorsqu'un taxon référent T1-R1 devient synonyme d'un nouveau taxon référent T2, 559 * le taxon 560 * T2 prend un nouveau code référent R2 et donc le taxon T1 est lié à R2 (et tous les synonymes 561 * et les 562 * résultats qu'il pouvait avoir). 563 * Ce mécanisme a été adopté car il fallait distinguer 2 cas : 564 * 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 565 * alors 566 * pu utiliser le même REF_TAXON_ID R1 au lieu d'en créer un et ne pas mettre à jour les autres 567 * synonymes, résultats... 568 * 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 569 * qui 570 * aurait déjà d'autres synonymes, résultats...), dans ce cas le remplacement de la référence R1 571 * pour 572 * R2 est nécessaire 573 * La modélisation pourrait être revue car la table REFENCE_TAXON ne se justifie alors plus, on 574 * pourrait directement utiliser une référence à la colonne TAXON_NAME_ID pour désigner les 575 * référents 576 * @param referenceTaxonIn ReferenceTaxon 577 */ 578 public void setReferenceTaxon(ReferenceTaxon referenceTaxonIn) 579 { 580 this.referenceTaxon = referenceTaxonIn; 581 } 582 583 private Collection<Batch> batches = new HashSet<Batch>(); 584 585 /** 586 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point 587 * dans 588 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : * 589 * une 590 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système + 591 * structure) 592 * * un niveau Ce lot de mollusques est positionné sur le terrain. 593 * @return this.batches Collection<Batch> 594 */ 595 public Collection<Batch> getBatches() 596 { 597 return this.batches; 598 } 599 600 /** 601 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point 602 * dans 603 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : * 604 * une 605 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système + 606 * structure) 607 * * un niveau Ce lot de mollusques est positionné sur le terrain. 608 * @param batchesIn Collection<Batch> 609 */ 610 public void setBatches(Collection<Batch> batchesIn) 611 { 612 this.batches = batchesIn; 613 } 614 615 /** 616 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point 617 * dans 618 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : * 619 * une 620 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système + 621 * structure) 622 * * un niveau Ce lot de mollusques est positionné sur le terrain. 623 * @param elementToAdd Batch 624 * @return <tt>true</tt> if this collection changed as a result of the 625 * call 626 */ 627 public boolean addBatches(Batch elementToAdd) 628 { 629 return this.batches.add(elementToAdd); 630 } 631 632 /** 633 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point 634 * dans 635 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : * 636 * une 637 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système + 638 * structure) 639 * * un niveau Ce lot de mollusques est positionné sur le terrain. 640 * @param elementToRemove Batch 641 * @return <tt>true</tt> if this collection changed as a result of the 642 * call 643 */ 644 public boolean removeBatches(Batch elementToRemove) 645 { 646 return this.batches.remove(elementToRemove); 647 } 648 649 private AgeGroup ageGroup; 650 651 /** 652 * Classe d'âge d'une population initiale 653 * @return this.ageGroup AgeGroup 654 */ 655 public AgeGroup getAgeGroup() 656 { 657 return this.ageGroup; 658 } 659 660 /** 661 * Classe d'âge d'une population initiale 662 * @param ageGroupIn AgeGroup 663 */ 664 public void setAgeGroup(AgeGroup ageGroupIn) 665 { 666 this.ageGroup = ageGroupIn; 667 } 668 669 private Collection<Quser> qusers = new HashSet<Quser>(); 670 671 /** 672 * Liste l'ensemble des agents et utilisateurs du système. 673 * @return this.qusers Collection<Quser> 674 */ 675 public Collection<Quser> getQusers() 676 { 677 return this.qusers; 678 } 679 680 /** 681 * Liste l'ensemble des agents et utilisateurs du système. 682 * @param qusersIn Collection<Quser> 683 */ 684 public void setQusers(Collection<Quser> qusersIn) 685 { 686 this.qusers = qusersIn; 687 } 688 689 /** 690 * Liste l'ensemble des agents et utilisateurs du système. 691 * @param elementToAdd Quser 692 * @return <tt>true</tt> if this collection changed as a result of the 693 * call 694 */ 695 public boolean addQusers(Quser elementToAdd) 696 { 697 return this.qusers.add(elementToAdd); 698 } 699 700 /** 701 * Liste l'ensemble des agents et utilisateurs du système. 702 * @param elementToRemove Quser 703 * @return <tt>true</tt> if this collection changed as a result of the 704 * call 705 */ 706 public boolean removeQusers(Quser elementToRemove) 707 { 708 return this.qusers.remove(elementToRemove); 709 } 710 711 /** 712 * Returns <code>true</code> if the argument is an InitialPopulation instance and all identifiers for this entity 713 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 714 */ 715 @Override 716 public boolean equals(Object object) 717 { 718 if (this == object) 719 { 720 return true; 721 } 722 if (!(object instanceof InitialPopulation)) 723 { 724 return false; 725 } 726 final InitialPopulation that = (InitialPopulation)object; 727 if (this.initPopId == null || that.getInitPopId() == null || !this.initPopId.equals(that.getInitPopId())) 728 { 729 return false; 730 } 731 return true; 732 } 733 734 /** 735 * Returns a hash code based on this entity's identifiers. 736 */ 737 @Override 738 public int hashCode() 739 { 740 int hashCode = 0; 741 hashCode = 29 * hashCode + (this.initPopId == null ? 0 : this.initPopId.hashCode()); 742 743 return hashCode; 744 } 745 746 /** 747 * Constructs new instances of {@link InitialPopulation}. 748 */ 749 public static final class Factory 750 { 751 /** 752 * Constructs a new instance of {@link InitialPopulation}. 753 * @return new InitialPopulationImpl() 754 */ 755 public static InitialPopulation newInstance() 756 { 757 return new InitialPopulationImpl(); 758 } 759 760 /** 761 * Constructs a new instance of {@link InitialPopulation}, taking all required and/or 762 * read-only properties as arguments, except for identifiers. 763 * @param initPopNm String 764 * @param initPopLb String 765 * @param initPopStartDt Date 766 * @param initPopBiometricIndivNb Integer 767 * @param qualityFlag QualityFlag 768 * @param referenceTaxon ReferenceTaxon 769 * @param ageGroup AgeGroup 770 * @return newInstance 771 */ 772 public static InitialPopulation newInstance(String initPopNm, String initPopLb, Date initPopStartDt, Integer initPopBiometricIndivNb, QualityFlag qualityFlag, ReferenceTaxon referenceTaxon, AgeGroup ageGroup) 773 { 774 final InitialPopulation entity = new InitialPopulationImpl(); 775 entity.setInitPopNm(initPopNm); 776 entity.setInitPopLb(initPopLb); 777 entity.setInitPopStartDt(initPopStartDt); 778 entity.setInitPopBiometricIndivNb(initPopBiometricIndivNb); 779 entity.setQualityFlag(qualityFlag); 780 entity.setReferenceTaxon(referenceTaxon); 781 entity.setAgeGroup(ageGroup); 782 return entity; 783 } 784 785 /** 786 * Constructs a new instance of {@link InitialPopulation}, taking all possible properties 787 * (except the identifier(s))as arguments. 788 * @param initPopNm String 789 * @param initPopLb String 790 * @param initPopCm String 791 * @param initPopQualifDt Date 792 * @param initPopQualifCm String 793 * @param initPopValidDt Date 794 * @param initPopControlDt Date 795 * @param initPopStartDt Date 796 * @param initPopBiometricIndivNb Integer 797 * @param updateDt Timestamp 798 * @param remoteId Integer 799 * @param ploidy Ploidy 800 * @param departments Collection<Department> 801 * @param historicalAccounts Collection<HistoricalAccount> 802 * @param programs Collection<Program> 803 * @param qualityFlag QualityFlag 804 * @param referenceTaxon ReferenceTaxon 805 * @param batches Collection<Batch> 806 * @param ageGroup AgeGroup 807 * @param qusers Collection<Quser> 808 * @return newInstance InitialPopulation 809 */ 810 public static InitialPopulation newInstance(String initPopNm, String initPopLb, String initPopCm, Date initPopQualifDt, String initPopQualifCm, Date initPopValidDt, Date initPopControlDt, Date initPopStartDt, Integer initPopBiometricIndivNb, Timestamp updateDt, Integer remoteId, Ploidy ploidy, Collection<Department> departments, Collection<HistoricalAccount> historicalAccounts, Collection<Program> programs, QualityFlag qualityFlag, ReferenceTaxon referenceTaxon, Collection<Batch> batches, AgeGroup ageGroup, Collection<Quser> qusers) 811 { 812 final InitialPopulation entity = new InitialPopulationImpl(); 813 entity.setInitPopNm(initPopNm); 814 entity.setInitPopLb(initPopLb); 815 entity.setInitPopCm(initPopCm); 816 entity.setInitPopQualifDt(initPopQualifDt); 817 entity.setInitPopQualifCm(initPopQualifCm); 818 entity.setInitPopValidDt(initPopValidDt); 819 entity.setInitPopControlDt(initPopControlDt); 820 entity.setInitPopStartDt(initPopStartDt); 821 entity.setInitPopBiometricIndivNb(initPopBiometricIndivNb); 822 entity.setUpdateDt(updateDt); 823 entity.setRemoteId(remoteId); 824 entity.setPloidy(ploidy); 825 entity.setDepartments(departments); 826 entity.setHistoricalAccounts(historicalAccounts); 827 entity.setPrograms(programs); 828 entity.setQualityFlag(qualityFlag); 829 entity.setReferenceTaxon(referenceTaxon); 830 entity.setBatches(batches); 831 entity.setAgeGroup(ageGroup); 832 entity.setQusers(qusers); 833 return entity; 834 } 835 } 836 837 /** 838 * @see Comparable#compareTo 839 */ 840 public int compareTo(InitialPopulation o) 841 { 842 int cmp = 0; 843 if (this.getInitPopId() != null) 844 { 845 cmp = this.getInitPopId().compareTo(o.getInitPopId()); 846 } 847 else 848 { 849 if (this.getInitPopNm() != null) 850 { 851 cmp = (cmp != 0 ? cmp : this.getInitPopNm().compareTo(o.getInitPopNm())); 852 } 853 if (this.getInitPopLb() != null) 854 { 855 cmp = (cmp != 0 ? cmp : this.getInitPopLb().compareTo(o.getInitPopLb())); 856 } 857 if (this.getInitPopCm() != null) 858 { 859 cmp = (cmp != 0 ? cmp : this.getInitPopCm().compareTo(o.getInitPopCm())); 860 } 861 if (this.getInitPopQualifDt() != null) 862 { 863 cmp = (cmp != 0 ? cmp : this.getInitPopQualifDt().compareTo(o.getInitPopQualifDt())); 864 } 865 if (this.getInitPopQualifCm() != null) 866 { 867 cmp = (cmp != 0 ? cmp : this.getInitPopQualifCm().compareTo(o.getInitPopQualifCm())); 868 } 869 if (this.getInitPopValidDt() != null) 870 { 871 cmp = (cmp != 0 ? cmp : this.getInitPopValidDt().compareTo(o.getInitPopValidDt())); 872 } 873 if (this.getInitPopControlDt() != null) 874 { 875 cmp = (cmp != 0 ? cmp : this.getInitPopControlDt().compareTo(o.getInitPopControlDt())); 876 } 877 if (this.getInitPopStartDt() != null) 878 { 879 cmp = (cmp != 0 ? cmp : this.getInitPopStartDt().compareTo(o.getInitPopStartDt())); 880 } 881 if (this.getInitPopBiometricIndivNb() != null) 882 { 883 cmp = (cmp != 0 ? cmp : this.getInitPopBiometricIndivNb().compareTo(o.getInitPopBiometricIndivNb())); 884 } 885 if (this.getUpdateDt() != null) 886 { 887 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt())); 888 } 889 if (this.getRemoteId() != null) 890 { 891 cmp = (cmp != 0 ? cmp : this.getRemoteId().compareTo(o.getRemoteId())); 892 } 893 } 894 return cmp; 895 } 896 // HibernateEntity.vsl merge-point 897 // InitialPopulation.java merge-point 898 }