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 java.io.Serializable; 032import java.sql.Timestamp; 033import java.util.Collection; 034import java.util.HashSet; 035 036/** 037 * @deprecated Use Program2person instead 038 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à la 039 * place les privilèves sur les programmes) 040 * Portefeuille de navires. 041 * Il peut s'agir d'un portefeuille de différent type (enquete d'activité, marées observées en mer, 042 * campagne en mer, etc.) 043 * Gestion des droits : 044 * - Un portefeuille est géré par un seul utilisateur, qui à les droits de lecture/écriture. 045 * - Un portefeuille peut etre supervisé par une tierce personne, qui aura également les droits de 046 * lecture/écriture sur les données du portefeuille. 047 * - Un portefeuille peut avoir plusieurs utilisateurs avec des droits de consultation uniquement 048 * (lecture seule) sur ces données. 049 */ 050// HibernateEntity.vsl annotations merge-point 051public abstract class ManagedData 052 implements Serializable, Comparable<ManagedData> 053{ 054 /** 055 * The serial version UID of this class. Needed for serialization. 056 */ 057 private static final long serialVersionUID = -1112639569822803327L; 058 059 // Generate 2 attributes 060 private Integer id; 061 062 /** 063 * Identifiant unique du portefeuille. 064 * @return this.id Integer 065 */ 066 public Integer getId() 067 { 068 return this.id; 069 } 070 071 /** 072 * Identifiant unique du portefeuille. 073 * @param idIn Integer 074 */ 075 public void setId(Integer idIn) 076 { 077 this.id = idIn; 078 } 079 080 private Timestamp updateDate; 081 082 /** 083 * 084 * @return this.updateDate Timestamp 085 */ 086 public Timestamp getUpdateDate() 087 { 088 return this.updateDate; 089 } 090 091 /** 092 * 093 * @param updateDateIn Timestamp 094 */ 095 public void setUpdateDate(Timestamp updateDateIn) 096 { 097 this.updateDate = updateDateIn; 098 } 099 100 // Generate 6 associations 101 private Collection<VesselManagePeriod> vesselManagePeriods = new HashSet<VesselManagePeriod>(); 102 103 /** 104 * @deprecated Use Program2person instead 105 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 106 * la place 107 * les privilèves sur les programmes) 108 * Définit la présence de navires sur un portefeuille pour une période début/fin. 109 * La période utilisée définit la date des données que peut saisir/modifier/visualiser 110 * l'utilisateur, 111 * en fonction de ses droits. 112 * Exemple : 113 * Si un utilisateur a un navire A dans un portefeuille pour la période du 01/01/2002 au 114 * 31/12/2002, il 115 * peut saisir des données même en 2004, si la date de donnée saisie est pendant l'année 2002. 116 * @return this.vesselManagePeriods Collection<VesselManagePeriod> 117 */ 118 public Collection<VesselManagePeriod> getVesselManagePeriods() 119 { 120 return this.vesselManagePeriods; 121 } 122 123 /** 124 * @deprecated Use Program2person instead 125 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 126 * la place 127 * les privilèves sur les programmes) 128 * Définit la présence de navires sur un portefeuille pour une période début/fin. 129 * La période utilisée définit la date des données que peut saisir/modifier/visualiser 130 * l'utilisateur, 131 * en fonction de ses droits. 132 * Exemple : 133 * Si un utilisateur a un navire A dans un portefeuille pour la période du 01/01/2002 au 134 * 31/12/2002, il 135 * peut saisir des données même en 2004, si la date de donnée saisie est pendant l'année 2002. 136 * @param vesselManagePeriodsIn Collection<VesselManagePeriod> 137 */ 138 public void setVesselManagePeriods(Collection<VesselManagePeriod> vesselManagePeriodsIn) 139 { 140 this.vesselManagePeriods = vesselManagePeriodsIn; 141 } 142 143 /** 144 * @deprecated Use Program2person instead 145 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 146 * la place 147 * les privilèves sur les programmes) 148 * Définit la présence de navires sur un portefeuille pour une période début/fin. 149 * La période utilisée définit la date des données que peut saisir/modifier/visualiser 150 * l'utilisateur, 151 * en fonction de ses droits. 152 * Exemple : 153 * Si un utilisateur a un navire A dans un portefeuille pour la période du 01/01/2002 au 154 * 31/12/2002, il 155 * peut saisir des données même en 2004, si la date de donnée saisie est pendant l'année 2002. 156 * @param elementToAdd VesselManagePeriod 157 * @return <tt>true</tt> if this collection changed as a result of the 158 * call 159 */ 160 public boolean addVesselManagePeriods(VesselManagePeriod elementToAdd) 161 { 162 return this.vesselManagePeriods.add(elementToAdd); 163 } 164 165 /** 166 * @deprecated Use Program2person instead 167 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 168 * la place 169 * les privilèves sur les programmes) 170 * Définit la présence de navires sur un portefeuille pour une période début/fin. 171 * La période utilisée définit la date des données que peut saisir/modifier/visualiser 172 * l'utilisateur, 173 * en fonction de ses droits. 174 * Exemple : 175 * Si un utilisateur a un navire A dans un portefeuille pour la période du 01/01/2002 au 176 * 31/12/2002, il 177 * peut saisir des données même en 2004, si la date de donnée saisie est pendant l'année 2002. 178 * @param elementToRemove VesselManagePeriod 179 * @return <tt>true</tt> if this collection changed as a result of the 180 * call 181 */ 182 public boolean removeVesselManagePeriods(VesselManagePeriod elementToRemove) 183 { 184 return this.vesselManagePeriods.remove(elementToRemove); 185 } 186 187 private Collection<Person> viewerUsers = new HashSet<Person>(); 188 189 /** 190 * <html> 191 * <head> 192 * <style> 193 * p {padding:0px; margin:0px;} 194 * </style> 195 * </head> 196 * <body> 197 * <p> 198 * Personne liées aux données : utilisateur du système, ou observateurs, 199 * responsable de données, etc. 200 * </p> 201 * <p> 202 * </p> 203 * <p> 204 * Les personnes liées aux activités professionnelles de pêche sont plutôt 205 * gérer dans <i>VesselPerson</i>. 206 * </p> 207 * <p> 208 * </p> 209 * <p> 210 * Nombre de lignes : 100 211 * </p> 212 * </body> 213 * </html> 214 * @return this.viewerUsers Collection<Person> 215 */ 216 public Collection<Person> getViewerUsers() 217 { 218 return this.viewerUsers; 219 } 220 221 /** 222 * <html> 223 * <head> 224 * <style> 225 * p {padding:0px; margin:0px;} 226 * </style> 227 * </head> 228 * <body> 229 * <p> 230 * Personne liées aux données : utilisateur du système, ou observateurs, 231 * responsable de données, etc. 232 * </p> 233 * <p> 234 * </p> 235 * <p> 236 * Les personnes liées aux activités professionnelles de pêche sont plutôt 237 * gérer dans <i>VesselPerson</i>. 238 * </p> 239 * <p> 240 * </p> 241 * <p> 242 * Nombre de lignes : 100 243 * </p> 244 * </body> 245 * </html> 246 * @param viewerUsersIn Collection<Person> 247 */ 248 public void setViewerUsers(Collection<Person> viewerUsersIn) 249 { 250 this.viewerUsers = viewerUsersIn; 251 } 252 253 /** 254 * <html> 255 * <head> 256 * <style> 257 * p {padding:0px; margin:0px;} 258 * </style> 259 * </head> 260 * <body> 261 * <p> 262 * Personne liées aux données : utilisateur du système, ou observateurs, 263 * responsable de données, etc. 264 * </p> 265 * <p> 266 * </p> 267 * <p> 268 * Les personnes liées aux activités professionnelles de pêche sont plutôt 269 * gérer dans <i>VesselPerson</i>. 270 * </p> 271 * <p> 272 * </p> 273 * <p> 274 * Nombre de lignes : 100 275 * </p> 276 * </body> 277 * </html> 278 * @param elementToAdd Person 279 * @return <tt>true</tt> if this collection changed as a result of the 280 * call 281 */ 282 public boolean addViewerUsers(Person elementToAdd) 283 { 284 return this.viewerUsers.add(elementToAdd); 285 } 286 287 /** 288 * <html> 289 * <head> 290 * <style> 291 * p {padding:0px; margin:0px;} 292 * </style> 293 * </head> 294 * <body> 295 * <p> 296 * Personne liées aux données : utilisateur du système, ou observateurs, 297 * responsable de données, etc. 298 * </p> 299 * <p> 300 * </p> 301 * <p> 302 * Les personnes liées aux activités professionnelles de pêche sont plutôt 303 * gérer dans <i>VesselPerson</i>. 304 * </p> 305 * <p> 306 * </p> 307 * <p> 308 * Nombre de lignes : 100 309 * </p> 310 * </body> 311 * </html> 312 * @param elementToRemove Person 313 * @return <tt>true</tt> if this collection changed as a result of the 314 * call 315 */ 316 public boolean removeViewerUsers(Person elementToRemove) 317 { 318 return this.viewerUsers.remove(elementToRemove); 319 } 320 321 private Person managerUser; 322 323 /** 324 * <html> 325 * <head> 326 * <style> 327 * p {padding:0px; margin:0px;} 328 * </style> 329 * </head> 330 * <body> 331 * <p> 332 * Personne liées aux données : utilisateur du système, ou observateurs, 333 * responsable de données, etc. 334 * </p> 335 * <p> 336 * </p> 337 * <p> 338 * Les personnes liées aux activités professionnelles de pêche sont plutôt 339 * gérer dans <i>VesselPerson</i>. 340 * </p> 341 * <p> 342 * </p> 343 * <p> 344 * Nombre de lignes : 100 345 * </p> 346 * </body> 347 * </html> 348 * @return this.managerUser Person 349 */ 350 public Person getManagerUser() 351 { 352 return this.managerUser; 353 } 354 355 /** 356 * <html> 357 * <head> 358 * <style> 359 * p {padding:0px; margin:0px;} 360 * </style> 361 * </head> 362 * <body> 363 * <p> 364 * Personne liées aux données : utilisateur du système, ou observateurs, 365 * responsable de données, etc. 366 * </p> 367 * <p> 368 * </p> 369 * <p> 370 * Les personnes liées aux activités professionnelles de pêche sont plutôt 371 * gérer dans <i>VesselPerson</i>. 372 * </p> 373 * <p> 374 * </p> 375 * <p> 376 * Nombre de lignes : 100 377 * </p> 378 * </body> 379 * </html> 380 * @param managerUserIn Person 381 */ 382 public void setManagerUser(Person managerUserIn) 383 { 384 this.managerUser = managerUserIn; 385 } 386 387 private Person supervisorUser; 388 389 /** 390 * <html> 391 * <head> 392 * <style> 393 * p {padding:0px; margin:0px;} 394 * </style> 395 * </head> 396 * <body> 397 * <p> 398 * Personne liées aux données : utilisateur du système, ou observateurs, 399 * responsable de données, etc. 400 * </p> 401 * <p> 402 * </p> 403 * <p> 404 * Les personnes liées aux activités professionnelles de pêche sont plutôt 405 * gérer dans <i>VesselPerson</i>. 406 * </p> 407 * <p> 408 * </p> 409 * <p> 410 * Nombre de lignes : 100 411 * </p> 412 * </body> 413 * </html> 414 * @return this.supervisorUser Person 415 */ 416 public Person getSupervisorUser() 417 { 418 return this.supervisorUser; 419 } 420 421 /** 422 * <html> 423 * <head> 424 * <style> 425 * p {padding:0px; margin:0px;} 426 * </style> 427 * </head> 428 * <body> 429 * <p> 430 * Personne liées aux données : utilisateur du système, ou observateurs, 431 * responsable de données, etc. 432 * </p> 433 * <p> 434 * </p> 435 * <p> 436 * Les personnes liées aux activités professionnelles de pêche sont plutôt 437 * gérer dans <i>VesselPerson</i>. 438 * </p> 439 * <p> 440 * </p> 441 * <p> 442 * Nombre de lignes : 100 443 * </p> 444 * </body> 445 * </html> 446 * @param supervisorUserIn Person 447 */ 448 public void setSupervisorUser(Person supervisorUserIn) 449 { 450 this.supervisorUser = supervisorUserIn; 451 } 452 453 private ManagedDataType managedDataType; 454 455 /** 456 * @deprecated Use Program2person instead 457 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 458 * la place 459 * les privilèves sur les programmes) 460 * Type de portefeuille. C'est ce type qui permet de déterminer si un utilisateur à les droits 461 * en 462 * saisie sur une fonctionnalité. 463 * Pour la V0, on trouvera les valeurs suivantes : 464 * - Calendrier d'activité 465 * - Marées observée en mer 466 * @return this.managedDataType ManagedDataType 467 */ 468 public ManagedDataType getManagedDataType() 469 { 470 return this.managedDataType; 471 } 472 473 /** 474 * @deprecated Use Program2person instead 475 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 476 * la place 477 * les privilèves sur les programmes) 478 * Type de portefeuille. C'est ce type qui permet de déterminer si un utilisateur à les droits 479 * en 480 * saisie sur une fonctionnalité. 481 * Pour la V0, on trouvera les valeurs suivantes : 482 * - Calendrier d'activité 483 * - Marées observée en mer 484 * @param managedDataTypeIn ManagedDataType 485 */ 486 public void setManagedDataType(ManagedDataType managedDataTypeIn) 487 { 488 this.managedDataType = managedDataTypeIn; 489 } 490 491 private Collection<ManagedDataTransfer> managedDataTransfers = new HashSet<ManagedDataTransfer>(); 492 493 /** 494 * @deprecated Use Program2person instead 495 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 496 * la place 497 * les privilèves sur les programmes) 498 * Cette entité contient les informations indiquant qu'un portefeuille a les mêmes droit qu'un 499 * autre. 500 * Cette information est utilisée pour la saisie pour que des données saisies par un service 501 * puissent 502 * toujours être gérées lorsque le service n'existe plus et que ses agents se retrouvent dans 503 * d'autres 504 * services 505 * @return this.managedDataTransfers Collection<ManagedDataTransfer> 506 */ 507 public Collection<ManagedDataTransfer> getManagedDataTransfers() 508 { 509 return this.managedDataTransfers; 510 } 511 512 /** 513 * @deprecated Use Program2person instead 514 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 515 * la place 516 * les privilèves sur les programmes) 517 * Cette entité contient les informations indiquant qu'un portefeuille a les mêmes droit qu'un 518 * autre. 519 * Cette information est utilisée pour la saisie pour que des données saisies par un service 520 * puissent 521 * toujours être gérées lorsque le service n'existe plus et que ses agents se retrouvent dans 522 * d'autres 523 * services 524 * @param managedDataTransfersIn Collection<ManagedDataTransfer> 525 */ 526 public void setManagedDataTransfers(Collection<ManagedDataTransfer> managedDataTransfersIn) 527 { 528 this.managedDataTransfers = managedDataTransfersIn; 529 } 530 531 /** 532 * @deprecated Use Program2person instead 533 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 534 * la place 535 * les privilèves sur les programmes) 536 * Cette entité contient les informations indiquant qu'un portefeuille a les mêmes droit qu'un 537 * autre. 538 * Cette information est utilisée pour la saisie pour que des données saisies par un service 539 * puissent 540 * toujours être gérées lorsque le service n'existe plus et que ses agents se retrouvent dans 541 * d'autres 542 * services 543 * @param elementToAdd ManagedDataTransfer 544 * @return <tt>true</tt> if this collection changed as a result of the 545 * call 546 */ 547 public boolean addManagedDataTransfers(ManagedDataTransfer elementToAdd) 548 { 549 return this.managedDataTransfers.add(elementToAdd); 550 } 551 552 /** 553 * @deprecated Use Program2person instead 554 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 555 * la place 556 * les privilèves sur les programmes) 557 * Cette entité contient les informations indiquant qu'un portefeuille a les mêmes droit qu'un 558 * autre. 559 * Cette information est utilisée pour la saisie pour que des données saisies par un service 560 * puissent 561 * toujours être gérées lorsque le service n'existe plus et que ses agents se retrouvent dans 562 * d'autres 563 * services 564 * @param elementToRemove ManagedDataTransfer 565 * @return <tt>true</tt> if this collection changed as a result of the 566 * call 567 */ 568 public boolean removeManagedDataTransfers(ManagedDataTransfer elementToRemove) 569 { 570 return this.managedDataTransfers.remove(elementToRemove); 571 } 572 573 /** 574 * Returns <code>true</code> if the argument is an ManagedData instance and all identifiers for this entity 575 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 576 */ 577 @Override 578 public boolean equals(Object object) 579 { 580 if (this == object) 581 { 582 return true; 583 } 584 if (!(object instanceof ManagedData)) 585 { 586 return false; 587 } 588 final ManagedData that = (ManagedData)object; 589 if (this.id == null || that.getId() == null || !this.id.equals(that.getId())) 590 { 591 return false; 592 } 593 return true; 594 } 595 596 /** 597 * Returns a hash code based on this entity's identifiers. 598 */ 599 @Override 600 public int hashCode() 601 { 602 int hashCode = 0; 603 hashCode = 29 * hashCode + (this.id == null ? 0 : this.id.hashCode()); 604 605 return hashCode; 606 } 607 608 /** 609 * Constructs new instances of {@link ManagedData}. 610 */ 611 public static final class Factory 612 { 613 /** 614 * Constructs a new instance of {@link ManagedData}. 615 * @return new ManagedDataImpl() 616 */ 617 public static ManagedData newInstance() 618 { 619 return new ManagedDataImpl(); 620 } 621 622 /** 623 * Constructs a new instance of {@link ManagedData}, taking all required and/or 624 * read-only properties as arguments, except for identifiers. 625 * @param updateDate Timestamp 626 * @param managerUser Person 627 * @param managedDataType ManagedDataType 628 * @return newInstance 629 */ 630 public static ManagedData newInstance(Timestamp updateDate, Person managerUser, ManagedDataType managedDataType) 631 { 632 final ManagedData entity = new ManagedDataImpl(); 633 entity.setUpdateDate(updateDate); 634 entity.setManagerUser(managerUser); 635 entity.setManagedDataType(managedDataType); 636 return entity; 637 } 638 639 /** 640 * Constructs a new instance of {@link ManagedData}, taking all possible properties 641 * (except the identifier(s))as arguments. 642 * @param updateDate Timestamp 643 * @param vesselManagePeriods Collection<VesselManagePeriod> 644 * @param viewerUsers Collection<Person> 645 * @param managerUser Person 646 * @param supervisorUser Person 647 * @param managedDataType ManagedDataType 648 * @param managedDataTransfers Collection<ManagedDataTransfer> 649 * @return newInstance ManagedData 650 */ 651 public static ManagedData newInstance(Timestamp updateDate, Collection<VesselManagePeriod> vesselManagePeriods, Collection<Person> viewerUsers, Person managerUser, Person supervisorUser, ManagedDataType managedDataType, Collection<ManagedDataTransfer> managedDataTransfers) 652 { 653 final ManagedData entity = new ManagedDataImpl(); 654 entity.setUpdateDate(updateDate); 655 entity.setVesselManagePeriods(vesselManagePeriods); 656 entity.setViewerUsers(viewerUsers); 657 entity.setManagerUser(managerUser); 658 entity.setSupervisorUser(supervisorUser); 659 entity.setManagedDataType(managedDataType); 660 entity.setManagedDataTransfers(managedDataTransfers); 661 return entity; 662 } 663 } 664 665 /** 666 * @see Comparable#compareTo 667 */ 668 public int compareTo(ManagedData o) 669 { 670 int cmp = 0; 671 if (this.getId() != null) 672 { 673 cmp = this.getId().compareTo(o.getId()); 674 } 675 else 676 { 677 if (this.getUpdateDate() != null) 678 { 679 cmp = (cmp != 0 ? cmp : this.getUpdateDate().compareTo(o.getUpdateDate())); 680 } 681 } 682 return cmp; 683 } 684// HibernateEntity.vsl merge-point 685// ManagedData.java merge-point 686}