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.Program; 032import fr.ifremer.adagio.core.dao.data.vessel.Vessel; 033import fr.ifremer.adagio.core.dao.referential.ObjectType; 034import java.io.Serializable; 035import java.sql.Timestamp; 036 037/** 038 * Droits calculés pour un utilisateur à partir d'autres entités implémentant la gestion des droits. 039 * Le but est l'amélioration des performances de synchronisation entre bases locale et distante. Les 040 * droits sont calculés en début d'importation des données et n'ont pas à être recalculés pour 041 * chaque donnée pour laquelle des droits sont appliqués. 042 * Créé d'après l'étude sur l'amélioration des performances V3 (cf. mantis 10528). 043 * Remplie à partir de la procédure PL/SQL F_FILL_PERSON_SESSION 044 */ 045// HibernateEntity.vsl annotations merge-point 046public abstract class PersonSessionVessel 047 implements Serializable, Comparable<PersonSessionVessel> 048{ 049 /** 050 * The serial version UID of this class. Needed for serialization. 051 */ 052 private static final long serialVersionUID = -64174703645674439L; 053 054 // Generate 8 attributes 055 private Long id; 056 057 /** 058 * 059 * @return this.id Long 060 */ 061 public Long getId() 062 { 063 return this.id; 064 } 065 066 /** 067 * 068 * @param idIn Long 069 */ 070 public void setId(Long idIn) 071 { 072 this.id = idIn; 073 } 074 075 private Timestamp startDateTime; 076 077 /** 078 * 079 * @return this.startDateTime Timestamp 080 */ 081 public Timestamp getStartDateTime() 082 { 083 return this.startDateTime; 084 } 085 086 /** 087 * 088 * @param startDateTimeIn Timestamp 089 */ 090 public void setStartDateTime(Timestamp startDateTimeIn) 091 { 092 this.startDateTime = startDateTimeIn; 093 } 094 095 private Timestamp endDateTime; 096 097 /** 098 * Attribut obligatoire : lorsque la valeur n'est pas renseigné dans les portefeuilles on lui 099 * assigne une valeur par défaut suprérieure à toute autre date. 100 * @return this.endDateTime Timestamp 101 */ 102 public Timestamp getEndDateTime() 103 { 104 return this.endDateTime; 105 } 106 107 /** 108 * Attribut obligatoire : lorsque la valeur n'est pas renseigné dans les portefeuilles on lui 109 * assigne une valeur par défaut suprérieure à toute autre date. 110 * @param endDateTimeIn Timestamp 111 */ 112 public void setEndDateTime(Timestamp endDateTimeIn) 113 { 114 this.endDateTime = endDateTimeIn; 115 } 116 117 private Boolean readVessel; 118 119 /** 120 * 121 * @return this.readVessel Boolean 122 */ 123 public Boolean isReadVessel() 124 { 125 return this.readVessel; 126 } 127 128 /** 129 * 130 * @param readVesselIn Boolean 131 */ 132 public void setReadVessel(Boolean readVesselIn) 133 { 134 this.readVessel = readVesselIn; 135 } 136 137 private Boolean writeData; 138 139 /** 140 * 141 * @return this.writeData Boolean 142 */ 143 public Boolean isWriteData() 144 { 145 return this.writeData; 146 } 147 148 /** 149 * 150 * @param writeDataIn Boolean 151 */ 152 public void setWriteData(Boolean writeDataIn) 153 { 154 this.writeData = writeDataIn; 155 } 156 157 private Boolean validateData; 158 159 /** 160 * L'utilisateur a t il les droits de validation ? (renseigné à partir des privilèges sur les 161 * programmes) 162 * @return this.validateData Boolean 163 */ 164 public Boolean getValidateData() 165 { 166 return this.validateData; 167 } 168 169 /** 170 * L'utilisateur a t il les droits de validation ? (renseigné à partir des privilèges sur les 171 * programmes) 172 * @param validateDataIn Boolean 173 */ 174 public void setValidateData(Boolean validateDataIn) 175 { 176 this.validateData = validateDataIn; 177 } 178 179 private Boolean readData; 180 181 /** 182 * 183 * @return this.readData Boolean 184 */ 185 public Boolean isReadData() 186 { 187 return this.readData; 188 } 189 190 /** 191 * 192 * @param readDataIn Boolean 193 */ 194 public void setReadData(Boolean readDataIn) 195 { 196 this.readData = readDataIn; 197 } 198 199 private Timestamp updateDate; 200 201 /** 202 * 203 * @return this.updateDate Timestamp 204 */ 205 public Timestamp getUpdateDate() 206 { 207 return this.updateDate; 208 } 209 210 /** 211 * 212 * @param updateDateIn Timestamp 213 */ 214 public void setUpdateDate(Timestamp updateDateIn) 215 { 216 this.updateDate = updateDateIn; 217 } 218 219 // Generate 4 associations 220 private ObjectType objectType; 221 222 /** 223 * Liste des types d'objets qui peuvent etre associés à la photo ou à un fichier attaché. Cette 224 * liste 225 * ne peut pas etre modifiée par l'utilisateur. 226 * généralement, il s'agit des noms des tables (en majuscule + underscore) 227 * @return this.objectType ObjectType 228 */ 229 public ObjectType getObjectType() 230 { 231 return this.objectType; 232 } 233 234 /** 235 * Liste des types d'objets qui peuvent etre associés à la photo ou à un fichier attaché. Cette 236 * liste 237 * ne peut pas etre modifiée par l'utilisateur. 238 * généralement, il s'agit des noms des tables (en majuscule + underscore) 239 * @param objectTypeIn ObjectType 240 */ 241 public void setObjectType(ObjectType objectTypeIn) 242 { 243 this.objectType = objectTypeIn; 244 } 245 246 private Program program; 247 248 /** 249 * Programme d'observation à l'origine d'une collecte de données. 250 * Désigne les activités qui sont à l'origine de la collecte d'un ensemble cohérent de données, 251 * que ce 252 * soit pour des collectes continues (marées observées en mer, SIPA) ou pour des études limitées 253 * dans 254 * le temps. La quantité de données rattachées à un programme peut être variable, selon qu'il 255 * s'agit 256 * d'une activité longue ou intensive, ou d'une opération plus ponctuelle (étude) mais toujours 257 * mise en 258 * œuvre selon un schéma décidé à l'avance. 259 * Exemple de programmes d'observations : 260 * - SIH-OBSMER (marées observées en mer) 261 * - SIH-STATPECHE (enquete d'activité et d'effort...) 262 * - SIPA : données déclaratives transmises par la DPMA 263 * - VMS : données satellitaires 264 * - OFIMER : données du SI de l'OFIMER 265 * @return this.program Program 266 */ 267 public Program getProgram() 268 { 269 return this.program; 270 } 271 272 /** 273 * Programme d'observation à l'origine d'une collecte de données. 274 * Désigne les activités qui sont à l'origine de la collecte d'un ensemble cohérent de données, 275 * que ce 276 * soit pour des collectes continues (marées observées en mer, SIPA) ou pour des études limitées 277 * dans 278 * le temps. La quantité de données rattachées à un programme peut être variable, selon qu'il 279 * s'agit 280 * d'une activité longue ou intensive, ou d'une opération plus ponctuelle (étude) mais toujours 281 * mise en 282 * œuvre selon un schéma décidé à l'avance. 283 * Exemple de programmes d'observations : 284 * - SIH-OBSMER (marées observées en mer) 285 * - SIH-STATPECHE (enquete d'activité et d'effort...) 286 * - SIPA : données déclaratives transmises par la DPMA 287 * - VMS : données satellitaires 288 * - OFIMER : données du SI de l'OFIMER 289 * @param programIn Program 290 */ 291 public void setProgram(Program programIn) 292 { 293 this.program = programIn; 294 } 295 296 private PersonSession personSession; 297 298 /** 299 * Tête de grappe de droits calculés pour un utilisateur à partir d'autres entités implémentant 300 * la 301 * gestion des droits. Le but est l'amélioration des performances de synchronisation entre bases 302 * locale 303 * et distante. Les droits sont calculés en début d'importation des données et n'ont pas à être 304 * recalculés pour chaque donnée pour laquelle des droits sont appliqués. 305 * Créé d'après l'étude sur l'amélioration des performances V3 (cf. mantis 10528). 306 * @return this.personSession PersonSession 307 */ 308 public PersonSession getPersonSession() 309 { 310 return this.personSession; 311 } 312 313 /** 314 * Tête de grappe de droits calculés pour un utilisateur à partir d'autres entités implémentant 315 * la 316 * gestion des droits. Le but est l'amélioration des performances de synchronisation entre bases 317 * locale 318 * et distante. Les droits sont calculés en début d'importation des données et n'ont pas à être 319 * recalculés pour chaque donnée pour laquelle des droits sont appliqués. 320 * Créé d'après l'étude sur l'amélioration des performances V3 (cf. mantis 10528). 321 * @param personSessionIn PersonSession 322 */ 323 public void setPersonSession(PersonSession personSessionIn) 324 { 325 this.personSession = personSessionIn; 326 } 327 328 private Vessel vessel; 329 330 /** 331 * Navire, ou plus généralement un usager de la ressource. 332 * Peut etre un navire de peche professionnel ou non, un navire scientifique, un pêcheur à pied, 333 * un 334 * groupement de navires, etc. 335 * @return this.vessel Vessel 336 */ 337 public Vessel getVessel() 338 { 339 return this.vessel; 340 } 341 342 /** 343 * Navire, ou plus généralement un usager de la ressource. 344 * Peut etre un navire de peche professionnel ou non, un navire scientifique, un pêcheur à pied, 345 * un 346 * groupement de navires, etc. 347 * @param vesselIn Vessel 348 */ 349 public void setVessel(Vessel vesselIn) 350 { 351 this.vessel = vesselIn; 352 } 353 354 /** 355 * Returns <code>true</code> if the argument is an PersonSessionVessel instance and all identifiers for this entity 356 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 357 */ 358 @Override 359 public boolean equals(Object object) 360 { 361 if (this == object) 362 { 363 return true; 364 } 365 if (!(object instanceof PersonSessionVessel)) 366 { 367 return false; 368 } 369 final PersonSessionVessel that = (PersonSessionVessel)object; 370 if (this.id == null || that.getId() == null || !this.id.equals(that.getId())) 371 { 372 return false; 373 } 374 return true; 375 } 376 377 /** 378 * Returns a hash code based on this entity's identifiers. 379 */ 380 @Override 381 public int hashCode() 382 { 383 int hashCode = 0; 384 hashCode = 29 * hashCode + (this.id == null ? 0 : this.id.hashCode()); 385 386 return hashCode; 387 } 388 389 /** 390 * Constructs new instances of {@link PersonSessionVessel}. 391 */ 392 public static final class Factory 393 { 394 /** 395 * Constructs a new instance of {@link PersonSessionVessel}. 396 * @return new PersonSessionVesselImpl() 397 */ 398 public static PersonSessionVessel newInstance() 399 { 400 return new PersonSessionVesselImpl(); 401 } 402 403 /** 404 * Constructs a new instance of {@link PersonSessionVessel}, taking all required and/or 405 * read-only properties as arguments, except for identifiers. 406 * @param startDateTime Timestamp 407 * @param endDateTime Timestamp 408 * @param readVessel Boolean 409 * @param writeData Boolean 410 * @param readData Boolean 411 * @param updateDate Timestamp 412 * @param objectType ObjectType 413 * @param program Program 414 * @param personSession PersonSession 415 * @param vessel Vessel 416 * @return newInstance 417 */ 418 public static PersonSessionVessel newInstance(Timestamp startDateTime, Timestamp endDateTime, Boolean readVessel, Boolean writeData, Boolean readData, Timestamp updateDate, ObjectType objectType, Program program, PersonSession personSession, Vessel vessel) 419 { 420 final PersonSessionVessel entity = new PersonSessionVesselImpl(); 421 entity.setStartDateTime(startDateTime); 422 entity.setEndDateTime(endDateTime); 423 entity.setReadVessel(readVessel); 424 entity.setWriteData(writeData); 425 entity.setReadData(readData); 426 entity.setUpdateDate(updateDate); 427 entity.setObjectType(objectType); 428 entity.setProgram(program); 429 entity.setPersonSession(personSession); 430 entity.setVessel(vessel); 431 return entity; 432 } 433 434 /** 435 * Constructs a new instance of {@link PersonSessionVessel}, taking all possible properties 436 * (except the identifier(s))as arguments. 437 * @param startDateTime Timestamp 438 * @param endDateTime Timestamp 439 * @param readVessel Boolean 440 * @param writeData Boolean 441 * @param validateData Boolean 442 * @param readData Boolean 443 * @param updateDate Timestamp 444 * @param objectType ObjectType 445 * @param program Program 446 * @param personSession PersonSession 447 * @param vessel Vessel 448 * @return newInstance PersonSessionVessel 449 */ 450 public static PersonSessionVessel newInstance(Timestamp startDateTime, Timestamp endDateTime, Boolean readVessel, Boolean writeData, Boolean validateData, Boolean readData, Timestamp updateDate, ObjectType objectType, Program program, PersonSession personSession, Vessel vessel) 451 { 452 final PersonSessionVessel entity = new PersonSessionVesselImpl(); 453 entity.setStartDateTime(startDateTime); 454 entity.setEndDateTime(endDateTime); 455 entity.setReadVessel(readVessel); 456 entity.setWriteData(writeData); 457 entity.setValidateData(validateData); 458 entity.setReadData(readData); 459 entity.setUpdateDate(updateDate); 460 entity.setObjectType(objectType); 461 entity.setProgram(program); 462 entity.setPersonSession(personSession); 463 entity.setVessel(vessel); 464 return entity; 465 } 466 } 467 468 /** 469 * @see Comparable#compareTo 470 */ 471 public int compareTo(PersonSessionVessel o) 472 { 473 int cmp = 0; 474 if (this.getId() != null) 475 { 476 cmp = this.getId().compareTo(o.getId()); 477 } 478 else 479 { 480 if (this.getStartDateTime() != null) 481 { 482 cmp = (cmp != 0 ? cmp : this.getStartDateTime().compareTo(o.getStartDateTime())); 483 } 484 if (this.getEndDateTime() != null) 485 { 486 cmp = (cmp != 0 ? cmp : this.getEndDateTime().compareTo(o.getEndDateTime())); 487 } 488 if (this.isReadVessel() != null) 489 { 490 cmp = (cmp != 0 ? cmp : this.isReadVessel().compareTo(o.isReadVessel())); 491 } 492 if (this.isWriteData() != null) 493 { 494 cmp = (cmp != 0 ? cmp : this.isWriteData().compareTo(o.isWriteData())); 495 } 496 if (this.getValidateData() != null) 497 { 498 cmp = (cmp != 0 ? cmp : this.getValidateData().compareTo(o.getValidateData())); 499 } 500 if (this.isReadData() != null) 501 { 502 cmp = (cmp != 0 ? cmp : this.isReadData().compareTo(o.isReadData())); 503 } 504 if (this.getUpdateDate() != null) 505 { 506 cmp = (cmp != 0 ? cmp : this.getUpdateDate().compareTo(o.getUpdateDate())); 507 } 508 } 509 return cmp; 510 } 511// HibernateEntity.vsl merge-point 512// PersonSessionVessel.java merge-point 513}