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.administration.user; 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.administration.programStrategy.Program2Person; 032import fr.ifremer.adagio.core.dao.referential.Status; 033import java.io.Serializable; 034import java.sql.Timestamp; 035import java.util.Collection; 036import java.util.Date; 037import java.util.HashSet; 038 039/** 040 * <html> 041 * <head> 042 * <style> 043 * p {padding:0px; margin:0px;} 044 * </style> 045 * </head> 046 * <body> 047 * <p> 048 * Personne liées aux données : utilisateur du système, ou observateurs, 049 * responsable de données, etc. 050 * </p> 051 * <p> 052 * </p> 053 * <p> 054 * Les personnes liées aux activités professionnelles de pêche sont plutôt 055 * gérer dans <i>VesselPerson</i>. 056 * </p> 057 * <p> 058 * </p> 059 * <p> 060 * Nombre de lignes : 100 061 * </p> 062 * </body> 063 * </html> 064 */ 065// HibernateEntity.vsl annotations merge-point 066public abstract class Person 067 implements Serializable, Comparable<Person> 068{ 069 /** 070 * The serial version UID of this class. Needed for serialization. 071 */ 072 private static final long serialVersionUID = 1139539194129865139L; 073 074 // Generate 14 attributes 075 private Integer id; 076 077 /** 078 * Identifiant interne. généré par le système. 079 * @return this.id Integer 080 */ 081 public Integer getId() 082 { 083 return this.id; 084 } 085 086 /** 087 * Identifiant interne. généré par le système. 088 * @param idIn Integer 089 */ 090 public void setId(Integer idIn) 091 { 092 this.id = idIn; 093 } 094 095 private String lastname; 096 097 /** 098 * 099 * @return this.lastname String 100 */ 101 public String getLastname() 102 { 103 return this.lastname; 104 } 105 106 /** 107 * 108 * @param lastnameIn String 109 */ 110 public void setLastname(String lastnameIn) 111 { 112 this.lastname = lastnameIn; 113 } 114 115 private String firstname; 116 117 /** 118 * 119 * @return this.firstname String 120 */ 121 public String getFirstname() 122 { 123 return this.firstname; 124 } 125 126 /** 127 * 128 * @param firstnameIn String 129 */ 130 public void setFirstname(String firstnameIn) 131 { 132 this.firstname = firstnameIn; 133 } 134 135 private String address; 136 137 /** 138 * 139 * @return this.address String 140 */ 141 public String getAddress() 142 { 143 return this.address; 144 } 145 146 /** 147 * 148 * @param addressIn String 149 */ 150 public void setAddress(String addressIn) 151 { 152 this.address = addressIn; 153 } 154 155 private Date creationDate; 156 157 /** 158 * 159 * @return this.creationDate Date 160 */ 161 public Date getCreationDate() 162 { 163 return this.creationDate; 164 } 165 166 /** 167 * 168 * @param creationDateIn Date 169 */ 170 public void setCreationDate(Date creationDateIn) 171 { 172 this.creationDate = creationDateIn; 173 } 174 175 private String phoneNumber; 176 177 /** 178 * 179 * @return this.phoneNumber String 180 */ 181 public String getPhoneNumber() 182 { 183 return this.phoneNumber; 184 } 185 186 /** 187 * 188 * @param phoneNumberIn String 189 */ 190 public void setPhoneNumber(String phoneNumberIn) 191 { 192 this.phoneNumber = phoneNumberIn; 193 } 194 195 private String mobileNumber; 196 197 /** 198 * 199 * @return this.mobileNumber String 200 */ 201 public String getMobileNumber() 202 { 203 return this.mobileNumber; 204 } 205 206 /** 207 * 208 * @param mobileNumberIn String 209 */ 210 public void setMobileNumber(String mobileNumberIn) 211 { 212 this.mobileNumber = mobileNumberIn; 213 } 214 215 private String faxNumber; 216 217 /** 218 * 219 * @return this.faxNumber String 220 */ 221 public String getFaxNumber() 222 { 223 return this.faxNumber; 224 } 225 226 /** 227 * 228 * @param faxNumberIn String 229 */ 230 public void setFaxNumber(String faxNumberIn) 231 { 232 this.faxNumber = faxNumberIn; 233 } 234 235 private String email; 236 237 /** 238 * 239 * @return this.email String 240 */ 241 public String getEmail() 242 { 243 return this.email; 244 } 245 246 /** 247 * 248 * @param emailIn String 249 */ 250 public void setEmail(String emailIn) 251 { 252 this.email = emailIn; 253 } 254 255 private Timestamp updateDate; 256 257 /** 258 * 259 * @return this.updateDate Timestamp 260 */ 261 public Timestamp getUpdateDate() 262 { 263 return this.updateDate; 264 } 265 266 /** 267 * 268 * @param updateDateIn Timestamp 269 */ 270 public void setUpdateDate(Timestamp updateDateIn) 271 { 272 this.updateDate = updateDateIn; 273 } 274 275 276 277 /** 278 * Mot de passe crypté de l'utilisateur. Utilisé pour permettre une authentification meme en 279 * mode déconnecté. 280 * @return this.cryptPassword String 281 */ 282 283 284 285 /** 286 * Mot de passe crypté de l'utilisateur. Utilisé pour permettre une authentification meme en 287 * mode déconnecté. 288 * @param cryptPasswordIn String 289 */ 290 291 292 293 private String employeeNumber; 294 295 /** 296 * =code ou matricule de la personne. Valeur récupérée de l'annuaire LDAP. 297 * Si la personne est un agent Ifremer, il s'agit de son numéro de matricule. Cela correspond 298 * alors à l'attribut "employeenumber" dans l'annuaire LDAP (mais sans les zéros suplémentaires 299 * au début du numéro). 300 * Si la personne n'est pas Ifremer, un matricule sans signification lui est tout de même 301 * affecté : toute personne, même extranet, a donc l'attribut "employeenumber" de renseigné dans 302 * l'annuaire LDAP. 303 * @return this.employeeNumber String 304 */ 305 public String getEmployeeNumber() 306 { 307 return this.employeeNumber; 308 } 309 310 /** 311 * =code ou matricule de la personne. Valeur récupérée de l'annuaire LDAP. 312 * Si la personne est un agent Ifremer, il s'agit de son numéro de matricule. Cela correspond 313 * alors à l'attribut "employeenumber" dans l'annuaire LDAP (mais sans les zéros suplémentaires 314 * au début du numéro). 315 * Si la personne n'est pas Ifremer, un matricule sans signification lui est tout de même 316 * affecté : toute personne, même extranet, a donc l'attribut "employeenumber" de renseigné dans 317 * l'annuaire LDAP. 318 * @param employeeNumberIn String 319 */ 320 public void setEmployeeNumber(String employeeNumberIn) 321 { 322 this.employeeNumber = employeeNumberIn; 323 } 324 325 private String username; 326 327 /** 328 * Login LDAP de l'utilisateur. 329 * @return this.username String 330 */ 331 public String getUsername() 332 { 333 return this.username; 334 } 335 336 /** 337 * Login LDAP de l'utilisateur. 338 * @param usernameIn String 339 */ 340 public void setUsername(String usernameIn) 341 { 342 this.username = usernameIn; 343 } 344 345 private String usernameExtranet; 346 347 /** 348 * 349 * @return this.usernameExtranet String 350 */ 351 public String getUsernameExtranet() 352 { 353 return this.usernameExtranet; 354 } 355 356 /** 357 * 358 * @param usernameExtranetIn String 359 */ 360 public void setUsernameExtranet(String usernameExtranetIn) 361 { 362 this.usernameExtranet = usernameExtranetIn; 363 } 364 365 // Generate 38 associations 366 private Collection<Program2Person> program2Persons = new HashSet<Program2Person>(); 367 368 /** 369 * <html> 370 * <head> 371 * <style> 372 * p {padding:0px; margin:0px;} 373 * </style> 374 * </head> 375 * <body> 376 * Définis les privilèges d'un utilsiateur sur un progamme, ou sur un 377 * </body> 378 * </html> 379 * @return this.program2Persons Collection<Program2Person> 380 */ 381 public Collection<Program2Person> getProgram2Persons() 382 { 383 return this.program2Persons; 384 } 385 386 /** 387 * <html> 388 * <head> 389 * <style> 390 * p {padding:0px; margin:0px;} 391 * </style> 392 * </head> 393 * <body> 394 * Définis les privilèges d'un utilsiateur sur un progamme, ou sur un 395 * </body> 396 * </html> 397 * @param program2PersonsIn Collection<Program2Person> 398 */ 399 public void setProgram2Persons(Collection<Program2Person> program2PersonsIn) 400 { 401 this.program2Persons = program2PersonsIn; 402 } 403 404 /** 405 * <html> 406 * <head> 407 * <style> 408 * p {padding:0px; margin:0px;} 409 * </style> 410 * </head> 411 * <body> 412 * Définis les privilèges d'un utilsiateur sur un progamme, ou sur un 413 * </body> 414 * </html> 415 * @param elementToAdd Program2Person 416 * @return <tt>true</tt> if this collection changed as a result of the 417 * call 418 */ 419 public boolean addProgram2Persons(Program2Person elementToAdd) 420 { 421 return this.program2Persons.add(elementToAdd); 422 } 423 424 /** 425 * <html> 426 * <head> 427 * <style> 428 * p {padding:0px; margin:0px;} 429 * </style> 430 * </head> 431 * <body> 432 * Définis les privilèges d'un utilsiateur sur un progamme, ou sur un 433 * </body> 434 * </html> 435 * @param elementToRemove Program2Person 436 * @return <tt>true</tt> if this collection changed as a result of the 437 * call 438 */ 439 public boolean removeProgram2Persons(Program2Person elementToRemove) 440 { 441 return this.program2Persons.remove(elementToRemove); 442 } 443 444 private Collection<UserProfil> profils = new HashSet<UserProfil>(); 445 446 /** 447 * <html> 448 * <head> 449 * </head> 450 * <body> 451 * <p> 452 * Liste des profils pouvant être affectés à un utilisateur. 453 * </p> 454 * <p> 455 * Pour la v1, les valeurs identifiées sont : 456 * </p> 457 * <p> 458 * - Administrateur de référentiel (pour info, pas encore de synonyme LDAP) 459 * : donne accès aux fonctionnalités d’aministration du référentiel, 460 * ainsi 461 * qu’aux autres fonctionn lité d’administration (ex : 462 * programmes/stratégies). 463 * </p> 464 * <p> 465 * - Observateur (pour info, synonyme LDAP = SIH_ROBS) : donne accès en 466 * consultation sur le référentiel (hors données navires). Si portefeuilles 467 * rattachés à l'observateur, alors droits en saisie sur la fonctionnalité 468 * correspondant au type du portefeuille (gestion des marées observées, 469 * calendriers d'activités navires, ...). Si superviseur de portefeuille, 470 * alors droits de correction sur les données saisies dans les 471 * portefeuilles supervisés. 472 * </p> 473 * <p> 474 * - Projet (pour info, synonyme LDAP = SIH_PROJET) : utilisateur membre de 475 * l'équipe projet du système ISIH : membre droits de consultation et de 476 * saisie que pour un observateur. 477 * </p> 478 * <p> 479 * - Utilisateur (pour info, synonyme LDAP = SIH_AUTRE) : utilisateur su 480 * système ISIH : pour la v1, ce profil ne donne accès à aucune 481 * fonctionnalité du système Allegro. 482 * <br> </p> 483 * <p> 484 * </p> 485 * <p> 486 * <u>note 1 :</u> les droits d'accès en saisie sur les fonctions 487 * (superviseur, activité sur les navires, marées observées) ne sont donc 488 * pas gérés ici, mais par l'intermédiaire des portefeuilles (cf classe 489 * "Portefeuille Navire"). 490 * </p> 491 * <p> 492 * <u>note 2 :</u> le synonyme LDAP "SIH_AUTRE" n'est pas utilisé pour le 493 * moment : il correspond à un utilisateur sans profil particulier 494 * </p> 495 * <p> 496 * Nombre de lignes : 4 497 * </p> 498 * </body> 499 * </html> 500 * @return this.profils Collection<UserProfil> 501 */ 502 public Collection<UserProfil> getProfils() 503 { 504 return this.profils; 505 } 506 507 /** 508 * <html> 509 * <head> 510 * </head> 511 * <body> 512 * <p> 513 * Liste des profils pouvant être affectés à un utilisateur. 514 * </p> 515 * <p> 516 * Pour la v1, les valeurs identifiées sont : 517 * </p> 518 * <p> 519 * - Administrateur de référentiel (pour info, pas encore de synonyme LDAP) 520 * : donne accès aux fonctionnalités d’aministration du référentiel, 521 * ainsi 522 * qu’aux autres fonctionn lité d’administration (ex : 523 * programmes/stratégies). 524 * </p> 525 * <p> 526 * - Observateur (pour info, synonyme LDAP = SIH_ROBS) : donne accès en 527 * consultation sur le référentiel (hors données navires). Si portefeuilles 528 * rattachés à l'observateur, alors droits en saisie sur la fonctionnalité 529 * correspondant au type du portefeuille (gestion des marées observées, 530 * calendriers d'activités navires, ...). Si superviseur de portefeuille, 531 * alors droits de correction sur les données saisies dans les 532 * portefeuilles supervisés. 533 * </p> 534 * <p> 535 * - Projet (pour info, synonyme LDAP = SIH_PROJET) : utilisateur membre de 536 * l'équipe projet du système ISIH : membre droits de consultation et de 537 * saisie que pour un observateur. 538 * </p> 539 * <p> 540 * - Utilisateur (pour info, synonyme LDAP = SIH_AUTRE) : utilisateur su 541 * système ISIH : pour la v1, ce profil ne donne accès à aucune 542 * fonctionnalité du système Allegro. 543 * <br> </p> 544 * <p> 545 * </p> 546 * <p> 547 * <u>note 1 :</u> les droits d'accès en saisie sur les fonctions 548 * (superviseur, activité sur les navires, marées observées) ne sont donc 549 * pas gérés ici, mais par l'intermédiaire des portefeuilles (cf classe 550 * "Portefeuille Navire"). 551 * </p> 552 * <p> 553 * <u>note 2 :</u> le synonyme LDAP "SIH_AUTRE" n'est pas utilisé pour le 554 * moment : il correspond à un utilisateur sans profil particulier 555 * </p> 556 * <p> 557 * Nombre de lignes : 4 558 * </p> 559 * </body> 560 * </html> 561 * @param profilsIn Collection<UserProfil> 562 */ 563 public void setProfils(Collection<UserProfil> profilsIn) 564 { 565 this.profils = profilsIn; 566 } 567 568 /** 569 * <html> 570 * <head> 571 * </head> 572 * <body> 573 * <p> 574 * Liste des profils pouvant être affectés à un utilisateur. 575 * </p> 576 * <p> 577 * Pour la v1, les valeurs identifiées sont : 578 * </p> 579 * <p> 580 * - Administrateur de référentiel (pour info, pas encore de synonyme LDAP) 581 * : donne accès aux fonctionnalités d’aministration du référentiel, 582 * ainsi 583 * qu’aux autres fonctionn lité d’administration (ex : 584 * programmes/stratégies). 585 * </p> 586 * <p> 587 * - Observateur (pour info, synonyme LDAP = SIH_ROBS) : donne accès en 588 * consultation sur le référentiel (hors données navires). Si portefeuilles 589 * rattachés à l'observateur, alors droits en saisie sur la fonctionnalité 590 * correspondant au type du portefeuille (gestion des marées observées, 591 * calendriers d'activités navires, ...). Si superviseur de portefeuille, 592 * alors droits de correction sur les données saisies dans les 593 * portefeuilles supervisés. 594 * </p> 595 * <p> 596 * - Projet (pour info, synonyme LDAP = SIH_PROJET) : utilisateur membre de 597 * l'équipe projet du système ISIH : membre droits de consultation et de 598 * saisie que pour un observateur. 599 * </p> 600 * <p> 601 * - Utilisateur (pour info, synonyme LDAP = SIH_AUTRE) : utilisateur su 602 * système ISIH : pour la v1, ce profil ne donne accès à aucune 603 * fonctionnalité du système Allegro. 604 * <br> </p> 605 * <p> 606 * </p> 607 * <p> 608 * <u>note 1 :</u> les droits d'accès en saisie sur les fonctions 609 * (superviseur, activité sur les navires, marées observées) ne sont donc 610 * pas gérés ici, mais par l'intermédiaire des portefeuilles (cf classe 611 * "Portefeuille Navire"). 612 * </p> 613 * <p> 614 * <u>note 2 :</u> le synonyme LDAP "SIH_AUTRE" n'est pas utilisé pour le 615 * moment : il correspond à un utilisateur sans profil particulier 616 * </p> 617 * <p> 618 * Nombre de lignes : 4 619 * </p> 620 * </body> 621 * </html> 622 * @param elementToAdd UserProfil 623 * @return <tt>true</tt> if this collection changed as a result of the 624 * call 625 */ 626 public boolean addProfils(UserProfil elementToAdd) 627 { 628 return this.profils.add(elementToAdd); 629 } 630 631 /** 632 * <html> 633 * <head> 634 * </head> 635 * <body> 636 * <p> 637 * Liste des profils pouvant être affectés à un utilisateur. 638 * </p> 639 * <p> 640 * Pour la v1, les valeurs identifiées sont : 641 * </p> 642 * <p> 643 * - Administrateur de référentiel (pour info, pas encore de synonyme LDAP) 644 * : donne accès aux fonctionnalités d’aministration du référentiel, 645 * ainsi 646 * qu’aux autres fonctionn lité d’administration (ex : 647 * programmes/stratégies). 648 * </p> 649 * <p> 650 * - Observateur (pour info, synonyme LDAP = SIH_ROBS) : donne accès en 651 * consultation sur le référentiel (hors données navires). Si portefeuilles 652 * rattachés à l'observateur, alors droits en saisie sur la fonctionnalité 653 * correspondant au type du portefeuille (gestion des marées observées, 654 * calendriers d'activités navires, ...). Si superviseur de portefeuille, 655 * alors droits de correction sur les données saisies dans les 656 * portefeuilles supervisés. 657 * </p> 658 * <p> 659 * - Projet (pour info, synonyme LDAP = SIH_PROJET) : utilisateur membre de 660 * l'équipe projet du système ISIH : membre droits de consultation et de 661 * saisie que pour un observateur. 662 * </p> 663 * <p> 664 * - Utilisateur (pour info, synonyme LDAP = SIH_AUTRE) : utilisateur su 665 * système ISIH : pour la v1, ce profil ne donne accès à aucune 666 * fonctionnalité du système Allegro. 667 * <br> </p> 668 * <p> 669 * </p> 670 * <p> 671 * <u>note 1 :</u> les droits d'accès en saisie sur les fonctions 672 * (superviseur, activité sur les navires, marées observées) ne sont donc 673 * pas gérés ici, mais par l'intermédiaire des portefeuilles (cf classe 674 * "Portefeuille Navire"). 675 * </p> 676 * <p> 677 * <u>note 2 :</u> le synonyme LDAP "SIH_AUTRE" n'est pas utilisé pour le 678 * moment : il correspond à un utilisateur sans profil particulier 679 * </p> 680 * <p> 681 * Nombre de lignes : 4 682 * </p> 683 * </body> 684 * </html> 685 * @param elementToRemove UserProfil 686 * @return <tt>true</tt> if this collection changed as a result of the 687 * call 688 */ 689 public boolean removeProfils(UserProfil elementToRemove) 690 { 691 return this.profils.remove(elementToRemove); 692 } 693 694 private Department department; 695 696 /** 697 * Service d'appartenance d'une personne. 698 * Il peut s'agir des départements et service de l'Ifremer, ou bien des entreprises, services 699 * extérieurs (sous-traitants, etc.). 700 * REMARQUE : nous en aurons besoin en v2, pour l'administration des personnes (rechercher une 701 * personne, gérer les sous-traitants, etc.), mais aussi pour identifier le service effectuant 702 * l’analyse d’un résultat de mesure. 703 * Nombre de lignes : 60 704 * @return this.department Department 705 */ 706 public Department getDepartment() 707 { 708 return this.department; 709 } 710 711 /** 712 * Service d'appartenance d'une personne. 713 * Il peut s'agir des départements et service de l'Ifremer, ou bien des entreprises, services 714 * extérieurs (sous-traitants, etc.). 715 * REMARQUE : nous en aurons besoin en v2, pour l'administration des personnes (rechercher une 716 * personne, gérer les sous-traitants, etc.), mais aussi pour identifier le service effectuant 717 * l’analyse d’un résultat de mesure. 718 * Nombre de lignes : 60 719 * @param departmentIn Department 720 */ 721 public void setDepartment(Department departmentIn) 722 { 723 this.department = departmentIn; 724 } 725 726 private Status status; 727 728 /** 729 * Pour les données du référentiel, information permettant de déterminer si une donnée est 730 * valide, 731 * obsolète ou temporaire. 732 * - obsolète (=inactif) : '0' 733 * - valide (=actif) : '1' 734 * - temporaire : '2' 735 * - en cours de suppression : '3' 736 * - : '4' 737 * note : on a préfère ici 'valide' au terme 'actif' (utilisé dans Harmonie), pour ne pas 738 * confondre 739 * avec par exemple l'activité d'un navire sur un mois. 740 * @return this.status Status 741 */ 742 public Status getStatus() 743 { 744 return this.status; 745 } 746 747 /** 748 * Pour les données du référentiel, information permettant de déterminer si une donnée est 749 * valide, 750 * obsolète ou temporaire. 751 * - obsolète (=inactif) : '0' 752 * - valide (=actif) : '1' 753 * - temporaire : '2' 754 * - en cours de suppression : '3' 755 * - : '4' 756 * note : on a préfère ici 'valide' au terme 'actif' (utilisé dans Harmonie), pour ne pas 757 * confondre 758 * avec par exemple l'activité d'un navire sur un mois. 759 * @param statusIn Status 760 */ 761 public void setStatus(Status statusIn) 762 { 763 this.status = statusIn; 764 } 765 766 /** 767 * Returns <code>true</code> if the argument is an Person instance and all identifiers for this entity 768 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 769 */ 770 @Override 771 public boolean equals(Object object) 772 { 773 if (this == object) 774 { 775 return true; 776 } 777 if (!(object instanceof Person)) 778 { 779 return false; 780 } 781 final Person that = (Person)object; 782 if (this.id == null || that.getId() == null || !this.id.equals(that.getId())) 783 { 784 return false; 785 } 786 return true; 787 } 788 789 /** 790 * Returns a hash code based on this entity's identifiers. 791 */ 792 @Override 793 public int hashCode() 794 { 795 int hashCode = 0; 796 hashCode = 29 * hashCode + (this.id == null ? 0 : this.id.hashCode()); 797 798 return hashCode; 799 } 800 801 /** 802 * Constructs new instances of {@link Person}. 803 */ 804 public static final class Factory 805 { 806 /** 807 * Constructs a new instance of {@link Person}. 808 * @return new PersonImpl() 809 */ 810 public static Person newInstance() 811 { 812 return new PersonImpl(); 813 } 814 815 /** 816 * Constructs a new instance of {@link Person}, taking all required and/or 817 * read-only properties as arguments, except for identifiers. 818 * @param lastname String 819 * @param firstname String 820 * @param creationDate Date 821 * @param updateDate Timestamp 822 * @param employeeNumber String 823 * @param username String 824 * @param department Department 825 * @param status Status 826 * @return newInstance 827 */ 828 public static Person newInstance(String lastname, String firstname, Date creationDate, Timestamp updateDate, String employeeNumber, String username, Department department, Status status) 829 { 830 final Person entity = new PersonImpl(); 831 entity.setLastname(lastname); 832 entity.setFirstname(firstname); 833 entity.setCreationDate(creationDate); 834 entity.setUpdateDate(updateDate); 835 entity.setEmployeeNumber(employeeNumber); 836 entity.setUsername(username); 837 entity.setDepartment(department); 838 entity.setStatus(status); 839 return entity; 840 } 841 842 /** 843 * Constructs a new instance of {@link Person}, taking all possible properties 844 * (except the identifier(s))as arguments. 845 * @param lastname String 846 * @param firstname String 847 * @param address String 848 * @param creationDate Date 849 * @param phoneNumber String 850 * @param mobileNumber String 851 * @param faxNumber String 852 * @param email String 853 * @param updateDate Timestamp 854 * @param cryptPassword String 855 * @param employeeNumber String 856 * @param username String 857 * @param usernameExtranet String 858 * @param program2Persons Collection<Program2Person> 859 * @param profils Collection<UserProfil> 860 * @param department Department 861 * @param status Status 862 * @return newInstance Person 863 */ 864 public static Person newInstance(String lastname, String firstname, String address, Date creationDate, String phoneNumber, String mobileNumber, String faxNumber, String email, Timestamp updateDate, String employeeNumber, String username, String usernameExtranet, Collection<Program2Person> program2Persons, Collection<UserProfil> profils, Department department, Status status) 865 { 866 final Person entity = new PersonImpl(); 867 entity.setLastname(lastname); 868 entity.setFirstname(firstname); 869 entity.setAddress(address); 870 entity.setCreationDate(creationDate); 871 entity.setPhoneNumber(phoneNumber); 872 entity.setMobileNumber(mobileNumber); 873 entity.setFaxNumber(faxNumber); 874 entity.setEmail(email); 875 entity.setUpdateDate(updateDate); 876 877 entity.setEmployeeNumber(employeeNumber); 878 entity.setUsername(username); 879 entity.setUsernameExtranet(usernameExtranet); 880 entity.setProgram2Persons(program2Persons); 881 entity.setProfils(profils); 882 entity.setDepartment(department); 883 entity.setStatus(status); 884 return entity; 885 } 886 } 887 888 /** 889 * @see Comparable#compareTo 890 */ 891 public int compareTo(Person o) 892 { 893 int cmp = 0; 894 if (this.getId() != null) 895 { 896 cmp = this.getId().compareTo(o.getId()); 897 } 898 else 899 { 900 if (this.getLastname() != null) 901 { 902 cmp = (cmp != 0 ? cmp : this.getLastname().compareTo(o.getLastname())); 903 } 904 if (this.getFirstname() != null) 905 { 906 cmp = (cmp != 0 ? cmp : this.getFirstname().compareTo(o.getFirstname())); 907 } 908 if (this.getAddress() != null) 909 { 910 cmp = (cmp != 0 ? cmp : this.getAddress().compareTo(o.getAddress())); 911 } 912 if (this.getCreationDate() != null) 913 { 914 cmp = (cmp != 0 ? cmp : this.getCreationDate().compareTo(o.getCreationDate())); 915 } 916 if (this.getPhoneNumber() != null) 917 { 918 cmp = (cmp != 0 ? cmp : this.getPhoneNumber().compareTo(o.getPhoneNumber())); 919 } 920 if (this.getMobileNumber() != null) 921 { 922 cmp = (cmp != 0 ? cmp : this.getMobileNumber().compareTo(o.getMobileNumber())); 923 } 924 if (this.getFaxNumber() != null) 925 { 926 cmp = (cmp != 0 ? cmp : this.getFaxNumber().compareTo(o.getFaxNumber())); 927 } 928 if (this.getEmail() != null) 929 { 930 cmp = (cmp != 0 ? cmp : this.getEmail().compareTo(o.getEmail())); 931 } 932 if (this.getUpdateDate() != null) 933 { 934 cmp = (cmp != 0 ? cmp : this.getUpdateDate().compareTo(o.getUpdateDate())); 935 } 936 937 938 if (this.getEmployeeNumber() != null) 939 { 940 cmp = (cmp != 0 ? cmp : this.getEmployeeNumber().compareTo(o.getEmployeeNumber())); 941 } 942 if (this.getUsername() != null) 943 { 944 cmp = (cmp != 0 ? cmp : this.getUsername().compareTo(o.getUsername())); 945 } 946 if (this.getUsernameExtranet() != null) 947 { 948 cmp = (cmp != 0 ? cmp : this.getUsernameExtranet().compareTo(o.getUsernameExtranet())); 949 } 950 } 951 return cmp; 952 } 953// HibernateEntity.vsl merge-point 954// Person.java merge-point 955}