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.data.vessel; 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.feature.physical.VesselFeatures; 033import fr.ifremer.adagio.core.dao.data.vessel.regulation.RightToProduce; 034import fr.ifremer.adagio.core.dao.referential.Status; 035import fr.ifremer.adagio.core.dao.referential.VesselType; 036import java.io.Serializable; 037import java.sql.Timestamp; 038import java.util.Collection; 039import java.util.HashSet; 040 041/** 042 * Navire, ou plus généralement un usager de la ressource. 043 * Peut etre un navire de peche professionnel ou non, un navire scientifique, un pêcheur à pied, un 044 * groupement de navires, etc. 045 */ 046// HibernateEntity.vsl annotations merge-point 047public abstract class Vessel 048 implements Serializable, Comparable<Vessel> 049{ 050 /** 051 * The serial version UID of this class. Needed for serialization. 052 */ 053 private static final long serialVersionUID = -6166084732904526931L; 054 055 // Generate 2 attributes 056 private String code; 057 058 /** 059 * <html> 060 * <head> 061 * <style> 062 * p {padding:0px; margin:0px;} 063 * </style> 064 * </head> 065 * <body> 066 * <p> 067 * Code du navire, c'est à dire son identifiant interne unique. Son 068 * identifiant interne ne change jamais, quelque soit son immatriculation, 069 * son lieu d'immatriculation, etc. 070 * </p> 071 * <p> 072 * </p> 073 * <p> 074 * Le code est sur 12 caractères pour permettre de stocker les 6 caractères 075 * du code Harmonie (+ dans Allegro un prefixe en base locale : "#TEMP¿"). 076 * </p> 077 * <p> 078 * </p> 079 * <p> 080 * => <b><u>Depuis le modèle V3.1.3</u></b>, une séquence 081 * VESSEL_CODE_SEQ permet de générer un identifiant unique, à convertir 082 * ensuite en alphanumérique. 083 * </p> 084 * </body> 085 * </html> 086 * @return this.code String 087 */ 088 public String getCode() 089 { 090 return this.code; 091 } 092 093 /** 094 * <html> 095 * <head> 096 * <style> 097 * p {padding:0px; margin:0px;} 098 * </style> 099 * </head> 100 * <body> 101 * <p> 102 * Code du navire, c'est à dire son identifiant interne unique. Son 103 * identifiant interne ne change jamais, quelque soit son immatriculation, 104 * son lieu d'immatriculation, etc. 105 * </p> 106 * <p> 107 * </p> 108 * <p> 109 * Le code est sur 12 caractères pour permettre de stocker les 6 caractères 110 * du code Harmonie (+ dans Allegro un prefixe en base locale : "#TEMP¿"). 111 * </p> 112 * <p> 113 * </p> 114 * <p> 115 * => <b><u>Depuis le modèle V3.1.3</u></b>, une séquence 116 * VESSEL_CODE_SEQ permet de générer un identifiant unique, à convertir 117 * ensuite en alphanumérique. 118 * </p> 119 * </body> 120 * </html> 121 * @param codeIn String 122 */ 123 public void setCode(String codeIn) 124 { 125 this.code = codeIn; 126 } 127 128 private Timestamp updateDate; 129 130 /** 131 * 132 * @return this.updateDate Timestamp 133 */ 134 public Timestamp getUpdateDate() 135 { 136 return this.updateDate; 137 } 138 139 /** 140 * 141 * @param updateDateIn Timestamp 142 */ 143 public void setUpdateDate(Timestamp updateDateIn) 144 { 145 this.updateDate = updateDateIn; 146 } 147 148 // Generate 34 associations 149 private Collection<VesselFleetEvent> vesselFleetEvents = new HashSet<VesselFleetEvent>(); 150 151 /** 152 * <html> 153 * <head> 154 * <style> 155 * p {padding:0px; margin:0px;} 156 * </style> 157 * </head> 158 * <body> 159 * <p> 160 * Evènement d'entrée ou sortie de flotte (entrée ou sortie du registre des 161 * navires). 162 * </p> 163 * <p> 164 * </p> 165 * <p> 166 * Par exemple : 167 * </p> 168 * <ul> 169 * <li> 170 * Pour le flux FPC : 171 * </li> 172 * </ul> 173 * <!--StartFragment--> 174 * <div style="color:rgb(0, 0, 175 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 176 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 177 * <p style="margin-left:50.0px;"> 178 * IMP<span style="white-space:pre-wrap;"> </span>Importation 179 * </p> 180 * </div> 181 * <div style="color:rgb(0, 0, 182 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 183 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 184 * <p style="margin-left:50.0px;"> 185 * CHA<span style="white-space:pre-wrap;"> </span>Entrée dans le FPC 186 * </p> 187 * </div> 188 * <div style="color:rgb(0, 0, 189 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 190 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 191 * <p style="margin-left:50.0px;"> 192 * CST<span style="white-space:pre-wrap;"> </span>Construction 193 * </p> 194 * </div> 195 * <div style="color:rgb(0, 0, 196 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 197 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 198 * <p style="margin-left:50.0px;"> 199 * EXP<span style="white-space:pre-wrap;"> </span>Exportation 200 * </p> 201 * </div> 202 * <div style="color:rgb(0, 0, 203 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 204 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 205 * <p style="margin-left:50.0px;"> 206 * COR<span style="white-space:pre-wrap;"> </span>Correction 207 * </p> 208 * </div> 209 * <div style="color:rgb(0, 0, 210 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 211 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 212 * <p style="margin-left:50.0px;"> 213 * RET<span style="white-space:pre-wrap;"> </span>Retrait du FPC 214 * </p> 215 * </div> 216 * <div style="color:rgb(0, 0, 217 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 218 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 219 * <p style="margin-left:50.0px;"> 220 * DES<span style="white-space:pre-wrap;"> </span>Destruction 221 * </p> 222 * </div> 223 * <div style="font-size:13px;font-style:normal;font-variant:normal;color:rgb(0, 0, 224 * 0);font-family:arial, sans-serif;"> 225 * </div> 226 * </body> 227 * </html> 228 * @return this.vesselFleetEvents Collection<VesselFleetEvent> 229 */ 230 public Collection<VesselFleetEvent> getVesselFleetEvents() 231 { 232 return this.vesselFleetEvents; 233 } 234 235 /** 236 * <html> 237 * <head> 238 * <style> 239 * p {padding:0px; margin:0px;} 240 * </style> 241 * </head> 242 * <body> 243 * <p> 244 * Evènement d'entrée ou sortie de flotte (entrée ou sortie du registre des 245 * navires). 246 * </p> 247 * <p> 248 * </p> 249 * <p> 250 * Par exemple : 251 * </p> 252 * <ul> 253 * <li> 254 * Pour le flux FPC : 255 * </li> 256 * </ul> 257 * <!--StartFragment--> 258 * <div style="color:rgb(0, 0, 259 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 260 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 261 * <p style="margin-left:50.0px;"> 262 * IMP<span style="white-space:pre-wrap;"> </span>Importation 263 * </p> 264 * </div> 265 * <div style="color:rgb(0, 0, 266 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 267 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 268 * <p style="margin-left:50.0px;"> 269 * CHA<span style="white-space:pre-wrap;"> </span>Entrée dans le FPC 270 * </p> 271 * </div> 272 * <div style="color:rgb(0, 0, 273 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 274 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 275 * <p style="margin-left:50.0px;"> 276 * CST<span style="white-space:pre-wrap;"> </span>Construction 277 * </p> 278 * </div> 279 * <div style="color:rgb(0, 0, 280 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 281 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 282 * <p style="margin-left:50.0px;"> 283 * EXP<span style="white-space:pre-wrap;"> </span>Exportation 284 * </p> 285 * </div> 286 * <div style="color:rgb(0, 0, 287 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 288 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 289 * <p style="margin-left:50.0px;"> 290 * COR<span style="white-space:pre-wrap;"> </span>Correction 291 * </p> 292 * </div> 293 * <div style="color:rgb(0, 0, 294 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 295 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 296 * <p style="margin-left:50.0px;"> 297 * RET<span style="white-space:pre-wrap;"> </span>Retrait du FPC 298 * </p> 299 * </div> 300 * <div style="color:rgb(0, 0, 301 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 302 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 303 * <p style="margin-left:50.0px;"> 304 * DES<span style="white-space:pre-wrap;"> </span>Destruction 305 * </p> 306 * </div> 307 * <div style="font-size:13px;font-style:normal;font-variant:normal;color:rgb(0, 0, 308 * 0);font-family:arial, sans-serif;"> 309 * </div> 310 * </body> 311 * </html> 312 * @param vesselFleetEventsIn Collection<VesselFleetEvent> 313 */ 314 public void setVesselFleetEvents(Collection<VesselFleetEvent> vesselFleetEventsIn) 315 { 316 this.vesselFleetEvents = vesselFleetEventsIn; 317 } 318 319 /** 320 * <html> 321 * <head> 322 * <style> 323 * p {padding:0px; margin:0px;} 324 * </style> 325 * </head> 326 * <body> 327 * <p> 328 * Evènement d'entrée ou sortie de flotte (entrée ou sortie du registre des 329 * navires). 330 * </p> 331 * <p> 332 * </p> 333 * <p> 334 * Par exemple : 335 * </p> 336 * <ul> 337 * <li> 338 * Pour le flux FPC : 339 * </li> 340 * </ul> 341 * <!--StartFragment--> 342 * <div style="color:rgb(0, 0, 343 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 344 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 345 * <p style="margin-left:50.0px;"> 346 * IMP<span style="white-space:pre-wrap;"> </span>Importation 347 * </p> 348 * </div> 349 * <div style="color:rgb(0, 0, 350 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 351 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 352 * <p style="margin-left:50.0px;"> 353 * CHA<span style="white-space:pre-wrap;"> </span>Entrée dans le FPC 354 * </p> 355 * </div> 356 * <div style="color:rgb(0, 0, 357 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 358 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 359 * <p style="margin-left:50.0px;"> 360 * CST<span style="white-space:pre-wrap;"> </span>Construction 361 * </p> 362 * </div> 363 * <div style="color:rgb(0, 0, 364 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 365 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 366 * <p style="margin-left:50.0px;"> 367 * EXP<span style="white-space:pre-wrap;"> </span>Exportation 368 * </p> 369 * </div> 370 * <div style="color:rgb(0, 0, 371 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 372 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 373 * <p style="margin-left:50.0px;"> 374 * COR<span style="white-space:pre-wrap;"> </span>Correction 375 * </p> 376 * </div> 377 * <div style="color:rgb(0, 0, 378 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 379 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 380 * <p style="margin-left:50.0px;"> 381 * RET<span style="white-space:pre-wrap;"> </span>Retrait du FPC 382 * </p> 383 * </div> 384 * <div style="color:rgb(0, 0, 385 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 386 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 387 * <p style="margin-left:50.0px;"> 388 * DES<span style="white-space:pre-wrap;"> </span>Destruction 389 * </p> 390 * </div> 391 * <div style="font-size:13px;font-style:normal;font-variant:normal;color:rgb(0, 0, 392 * 0);font-family:arial, sans-serif;"> 393 * </div> 394 * </body> 395 * </html> 396 * @param elementToAdd VesselFleetEvent 397 * @return <tt>true</tt> if this collection changed as a result of the 398 * call 399 */ 400 public boolean addVesselFleetEvents(VesselFleetEvent elementToAdd) 401 { 402 return this.vesselFleetEvents.add(elementToAdd); 403 } 404 405 /** 406 * <html> 407 * <head> 408 * <style> 409 * p {padding:0px; margin:0px;} 410 * </style> 411 * </head> 412 * <body> 413 * <p> 414 * Evènement d'entrée ou sortie de flotte (entrée ou sortie du registre des 415 * navires). 416 * </p> 417 * <p> 418 * </p> 419 * <p> 420 * Par exemple : 421 * </p> 422 * <ul> 423 * <li> 424 * Pour le flux FPC : 425 * </li> 426 * </ul> 427 * <!--StartFragment--> 428 * <div style="color:rgb(0, 0, 429 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 430 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 431 * <p style="margin-left:50.0px;"> 432 * IMP<span style="white-space:pre-wrap;"> </span>Importation 433 * </p> 434 * </div> 435 * <div style="color:rgb(0, 0, 436 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 437 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 438 * <p style="margin-left:50.0px;"> 439 * CHA<span style="white-space:pre-wrap;"> </span>Entrée dans le FPC 440 * </p> 441 * </div> 442 * <div style="color:rgb(0, 0, 443 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 444 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 445 * <p style="margin-left:50.0px;"> 446 * CST<span style="white-space:pre-wrap;"> </span>Construction 447 * </p> 448 * </div> 449 * <div style="color:rgb(0, 0, 450 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 451 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 452 * <p style="margin-left:50.0px;"> 453 * EXP<span style="white-space:pre-wrap;"> </span>Exportation 454 * </p> 455 * </div> 456 * <div style="color:rgb(0, 0, 457 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 458 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 459 * <p style="margin-left:50.0px;"> 460 * COR<span style="white-space:pre-wrap;"> </span>Correction 461 * </p> 462 * </div> 463 * <div style="color:rgb(0, 0, 464 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 465 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 466 * <p style="margin-left:50.0px;"> 467 * RET<span style="white-space:pre-wrap;"> </span>Retrait du FPC 468 * </p> 469 * </div> 470 * <div style="color:rgb(0, 0, 471 * 0);white-space:normal;font-size:13px;text-indent:0px;font-weight:normal;letter-spacing:normal;font-variant:normal;word-spacing:0px;text-align:-webkit-auto;font-style:normal;background-color:rgb(255, 472 * 255, 255);line-height:normal;font-family:arial, sans-serif;text-transform:none;"> 473 * <p style="margin-left:50.0px;"> 474 * DES<span style="white-space:pre-wrap;"> </span>Destruction 475 * </p> 476 * </div> 477 * <div style="font-size:13px;font-style:normal;font-variant:normal;color:rgb(0, 0, 478 * 0);font-family:arial, sans-serif;"> 479 * </div> 480 * </body> 481 * </html> 482 * @param elementToRemove VesselFleetEvent 483 * @return <tt>true</tt> if this collection changed as a result of the 484 * call 485 */ 486 public boolean removeVesselFleetEvents(VesselFleetEvent elementToRemove) 487 { 488 return this.vesselFleetEvents.remove(elementToRemove); 489 } 490 491 private Status status; 492 493 /** 494 * Etat du navire à la date actuelle du système. Sert notamment à déterminer si le navire est 495 * encore actif à la date du jour. 496 * Cet état sert également pour les navires temporaires, lors de leur création dans la base 497 * locale d'Allegro. 498 * @return this.status Status 499 */ 500 public Status getStatus() 501 { 502 return this.status; 503 } 504 505 /** 506 * Etat du navire à la date actuelle du système. Sert notamment à déterminer si le navire est 507 * encore actif à la date du jour. 508 * Cet état sert également pour les navires temporaires, lors de leur création dans la base 509 * locale d'Allegro. 510 * @param statusIn Status 511 */ 512 public void setStatus(Status statusIn) 513 { 514 this.status = statusIn; 515 } 516 517 private Collection<VesselRegistrationPeriod> vesselRegistrationPeriods = new HashSet<VesselRegistrationPeriod>(); 518 519 /** 520 * Définit le lieu d'immatriculation d'un navire statistique et la période associée. 521 * Nombre de lignes : 72700 522 * @return this.vesselRegistrationPeriods Collection<VesselRegistrationPeriod> 523 */ 524 public Collection<VesselRegistrationPeriod> getVesselRegistrationPeriods() 525 { 526 return this.vesselRegistrationPeriods; 527 } 528 529 /** 530 * Définit le lieu d'immatriculation d'un navire statistique et la période associée. 531 * Nombre de lignes : 72700 532 * @param vesselRegistrationPeriodsIn Collection<VesselRegistrationPeriod> 533 */ 534 public void setVesselRegistrationPeriods(Collection<VesselRegistrationPeriod> vesselRegistrationPeriodsIn) 535 { 536 this.vesselRegistrationPeriods = vesselRegistrationPeriodsIn; 537 } 538 539 /** 540 * Définit le lieu d'immatriculation d'un navire statistique et la période associée. 541 * Nombre de lignes : 72700 542 * @param elementToAdd VesselRegistrationPeriod 543 * @return <tt>true</tt> if this collection changed as a result of the 544 * call 545 */ 546 public boolean addVesselRegistrationPeriods(VesselRegistrationPeriod elementToAdd) 547 { 548 return this.vesselRegistrationPeriods.add(elementToAdd); 549 } 550 551 /** 552 * Définit le lieu d'immatriculation d'un navire statistique et la période associée. 553 * Nombre de lignes : 72700 554 * @param elementToRemove VesselRegistrationPeriod 555 * @return <tt>true</tt> if this collection changed as a result of the 556 * call 557 */ 558 public boolean removeVesselRegistrationPeriods(VesselRegistrationPeriod elementToRemove) 559 { 560 return this.vesselRegistrationPeriods.remove(elementToRemove); 561 } 562 563 private Collection<VesselFeatures> vesselFeatures = new HashSet<VesselFeatures>(); 564 565 /** 566 * <html> 567 * <head> 568 * <style> 569 * p {padding:0px; margin:0px;} 570 * </style> 571 * </head> 572 * <body> 573 * <p> 574 * Caractéristiques d'un navire, sur une période donnée. 575 * </p> 576 * <p> 577 * <b>Correspond à la synthèse consolidée des différents 578 * VesselPhysicalFeatures collectés. 579 * </b> </p> 580 * <p> 581 * </p> 582 * <p> 583 * Si le navire est inscrit au FPC, les caractéristiques FPC sont utilisées 584 * (jauge_ums et jauge_brute). 585 * </p> 586 * <p> 587 * </p> 588 * <p> 589 * REMARQUE : les données ramenées depuis Harmonie sont fusionnées entre 590 * les caractéristiques FPC (à utiliser de préférence si présent), et les 591 * caractéristiques d'autres sources. 592 * </p> 593 * <p> 594 * </p> 595 * <p> 596 * Nombre de lignes : 67375 597 * </p> 598 * </body> 599 * </html> 600 * @return this.vesselFeatures Collection<VesselFeatures> 601 */ 602 public Collection<VesselFeatures> getVesselFeatures() 603 { 604 return this.vesselFeatures; 605 } 606 607 /** 608 * <html> 609 * <head> 610 * <style> 611 * p {padding:0px; margin:0px;} 612 * </style> 613 * </head> 614 * <body> 615 * <p> 616 * Caractéristiques d'un navire, sur une période donnée. 617 * </p> 618 * <p> 619 * <b>Correspond à la synthèse consolidée des différents 620 * VesselPhysicalFeatures collectés. 621 * </b> </p> 622 * <p> 623 * </p> 624 * <p> 625 * Si le navire est inscrit au FPC, les caractéristiques FPC sont utilisées 626 * (jauge_ums et jauge_brute). 627 * </p> 628 * <p> 629 * </p> 630 * <p> 631 * REMARQUE : les données ramenées depuis Harmonie sont fusionnées entre 632 * les caractéristiques FPC (à utiliser de préférence si présent), et les 633 * caractéristiques d'autres sources. 634 * </p> 635 * <p> 636 * </p> 637 * <p> 638 * Nombre de lignes : 67375 639 * </p> 640 * </body> 641 * </html> 642 * @param vesselFeaturesIn Collection<VesselFeatures> 643 */ 644 public void setVesselFeatures(Collection<VesselFeatures> vesselFeaturesIn) 645 { 646 this.vesselFeatures = vesselFeaturesIn; 647 } 648 649 /** 650 * <html> 651 * <head> 652 * <style> 653 * p {padding:0px; margin:0px;} 654 * </style> 655 * </head> 656 * <body> 657 * <p> 658 * Caractéristiques d'un navire, sur une période donnée. 659 * </p> 660 * <p> 661 * <b>Correspond à la synthèse consolidée des différents 662 * VesselPhysicalFeatures collectés. 663 * </b> </p> 664 * <p> 665 * </p> 666 * <p> 667 * Si le navire est inscrit au FPC, les caractéristiques FPC sont utilisées 668 * (jauge_ums et jauge_brute). 669 * </p> 670 * <p> 671 * </p> 672 * <p> 673 * REMARQUE : les données ramenées depuis Harmonie sont fusionnées entre 674 * les caractéristiques FPC (à utiliser de préférence si présent), et les 675 * caractéristiques d'autres sources. 676 * </p> 677 * <p> 678 * </p> 679 * <p> 680 * Nombre de lignes : 67375 681 * </p> 682 * </body> 683 * </html> 684 * @param elementToAdd VesselFeatures 685 * @return <tt>true</tt> if this collection changed as a result of the 686 * call 687 */ 688 public boolean addVesselFeatures(VesselFeatures elementToAdd) 689 { 690 return this.vesselFeatures.add(elementToAdd); 691 } 692 693 /** 694 * <html> 695 * <head> 696 * <style> 697 * p {padding:0px; margin:0px;} 698 * </style> 699 * </head> 700 * <body> 701 * <p> 702 * Caractéristiques d'un navire, sur une période donnée. 703 * </p> 704 * <p> 705 * <b>Correspond à la synthèse consolidée des différents 706 * VesselPhysicalFeatures collectés. 707 * </b> </p> 708 * <p> 709 * </p> 710 * <p> 711 * Si le navire est inscrit au FPC, les caractéristiques FPC sont utilisées 712 * (jauge_ums et jauge_brute). 713 * </p> 714 * <p> 715 * </p> 716 * <p> 717 * REMARQUE : les données ramenées depuis Harmonie sont fusionnées entre 718 * les caractéristiques FPC (à utiliser de préférence si présent), et les 719 * caractéristiques d'autres sources. 720 * </p> 721 * <p> 722 * </p> 723 * <p> 724 * Nombre de lignes : 67375 725 * </p> 726 * </body> 727 * </html> 728 * @param elementToRemove VesselFeatures 729 * @return <tt>true</tt> if this collection changed as a result of the 730 * call 731 */ 732 public boolean removeVesselFeatures(VesselFeatures elementToRemove) 733 { 734 return this.vesselFeatures.remove(elementToRemove); 735 } 736 737 private Collection<RightToProduce> rightToProduces = new HashSet<RightToProduce>(); 738 739 /** 740 * Un droit de produire est une autorisation administrative pour prélever de ou exploiter de la 741 * ressource. Il peut concerner un ensemble de navires de peche, ou un seul navire ou pecheur à 742 * pied. 743 * L'autorisation peut etre relative à une espèce, ou bien à un couple engin/espèce (=métier) 744 * il peut etre défini dans le cadre d'un corpus ou non (ex : droit de produire défini par les 745 * autorités locales). 746 * @return this.rightToProduces Collection<RightToProduce> 747 */ 748 public Collection<RightToProduce> getRightToProduces() 749 { 750 return this.rightToProduces; 751 } 752 753 /** 754 * Un droit de produire est une autorisation administrative pour prélever de ou exploiter de la 755 * ressource. Il peut concerner un ensemble de navires de peche, ou un seul navire ou pecheur à 756 * pied. 757 * L'autorisation peut etre relative à une espèce, ou bien à un couple engin/espèce (=métier) 758 * il peut etre défini dans le cadre d'un corpus ou non (ex : droit de produire défini par les 759 * autorités locales). 760 * @param rightToProducesIn Collection<RightToProduce> 761 */ 762 public void setRightToProduces(Collection<RightToProduce> rightToProducesIn) 763 { 764 this.rightToProduces = rightToProducesIn; 765 } 766 767 /** 768 * Un droit de produire est une autorisation administrative pour prélever de ou exploiter de la 769 * ressource. Il peut concerner un ensemble de navires de peche, ou un seul navire ou pecheur à 770 * pied. 771 * L'autorisation peut etre relative à une espèce, ou bien à un couple engin/espèce (=métier) 772 * il peut etre défini dans le cadre d'un corpus ou non (ex : droit de produire défini par les 773 * autorités locales). 774 * @param elementToAdd RightToProduce 775 * @return <tt>true</tt> if this collection changed as a result of the 776 * call 777 */ 778 public boolean addRightToProduces(RightToProduce elementToAdd) 779 { 780 return this.rightToProduces.add(elementToAdd); 781 } 782 783 /** 784 * Un droit de produire est une autorisation administrative pour prélever de ou exploiter de la 785 * ressource. Il peut concerner un ensemble de navires de peche, ou un seul navire ou pecheur à 786 * pied. 787 * L'autorisation peut etre relative à une espèce, ou bien à un couple engin/espèce (=métier) 788 * il peut etre défini dans le cadre d'un corpus ou non (ex : droit de produire défini par les 789 * autorités locales). 790 * @param elementToRemove RightToProduce 791 * @return <tt>true</tt> if this collection changed as a result of the 792 * call 793 */ 794 public boolean removeRightToProduces(RightToProduce elementToRemove) 795 { 796 return this.rightToProduces.remove(elementToRemove); 797 } 798 799 private Program program; 800 801 /** 802 * <html> 803 * <head> 804 * <style> 805 * p {padding:0px; margin:0px;} 806 * </style> 807 * </head> 808 * <body> 809 * <p> 810 * Identifie le référentiel d'usagers auquel est rattaché le Vessel. Il 811 * peut s'agir du référentiel consolidé SIH, ou d'une autre référentiel 812 * (UE, FPC, VMS, etc). 813 * </p> 814 * <p> 815 * </p> 816 * <p> 817 * Par exemple, lors de l'importation des données VMS, un Vessel est crée, 818 * rattaché au programme de collecte VMS. Cela permet de ne pas perdre 819 * d'informationssur le navire, même si celui-ci n'était pas dans le 820 * référentiel consolidé. 821 * </p> 822 * </body> 823 * </html> 824 * @return this.program Program 825 */ 826 public Program getProgram() 827 { 828 return this.program; 829 } 830 831 /** 832 * <html> 833 * <head> 834 * <style> 835 * p {padding:0px; margin:0px;} 836 * </style> 837 * </head> 838 * <body> 839 * <p> 840 * Identifie le référentiel d'usagers auquel est rattaché le Vessel. Il 841 * peut s'agir du référentiel consolidé SIH, ou d'une autre référentiel 842 * (UE, FPC, VMS, etc). 843 * </p> 844 * <p> 845 * </p> 846 * <p> 847 * Par exemple, lors de l'importation des données VMS, un Vessel est crée, 848 * rattaché au programme de collecte VMS. Cela permet de ne pas perdre 849 * d'informationssur le navire, même si celui-ci n'était pas dans le 850 * référentiel consolidé. 851 * </p> 852 * </body> 853 * </html> 854 * @param programIn Program 855 */ 856 public void setProgram(Program programIn) 857 { 858 this.program = programIn; 859 } 860 861 private Collection<VesselOwnerPeriod> vesselOwnerPeriods = new HashSet<VesselOwnerPeriod>(); 862 863 /** 864 * Période d'appartenance d'un navire à un armateur (période d'armement). 865 * Nombre de lignes : 25600 866 * @return this.vesselOwnerPeriods Collection<VesselOwnerPeriod> 867 */ 868 public Collection<VesselOwnerPeriod> getVesselOwnerPeriods() 869 { 870 return this.vesselOwnerPeriods; 871 } 872 873 /** 874 * Période d'appartenance d'un navire à un armateur (période d'armement). 875 * Nombre de lignes : 25600 876 * @param vesselOwnerPeriodsIn Collection<VesselOwnerPeriod> 877 */ 878 public void setVesselOwnerPeriods(Collection<VesselOwnerPeriod> vesselOwnerPeriodsIn) 879 { 880 this.vesselOwnerPeriods = vesselOwnerPeriodsIn; 881 } 882 883 /** 884 * Période d'appartenance d'un navire à un armateur (période d'armement). 885 * Nombre de lignes : 25600 886 * @param elementToAdd VesselOwnerPeriod 887 * @return <tt>true</tt> if this collection changed as a result of the 888 * call 889 */ 890 public boolean addVesselOwnerPeriods(VesselOwnerPeriod elementToAdd) 891 { 892 return this.vesselOwnerPeriods.add(elementToAdd); 893 } 894 895 /** 896 * Période d'appartenance d'un navire à un armateur (période d'armement). 897 * Nombre de lignes : 25600 898 * @param elementToRemove VesselOwnerPeriod 899 * @return <tt>true</tt> if this collection changed as a result of the 900 * call 901 */ 902 public boolean removeVesselOwnerPeriods(VesselOwnerPeriod elementToRemove) 903 { 904 return this.vesselOwnerPeriods.remove(elementToRemove); 905 } 906 907 private VesselType vesselType; 908 909 /** 910 * Type de navire. Exemple : 1 pour les navires professionnels, 2 pour les pecheurs à pied, 3 911 * pour les navires scientifiques 912 * @return this.vesselType VesselType 913 */ 914 public VesselType getVesselType() 915 { 916 return this.vesselType; 917 } 918 919 /** 920 * Type de navire. Exemple : 1 pour les navires professionnels, 2 pour les pecheurs à pied, 3 921 * pour les navires scientifiques 922 * @param vesselTypeIn VesselType 923 */ 924 public void setVesselType(VesselType vesselTypeIn) 925 { 926 this.vesselType = vesselTypeIn; 927 } 928 929 private Collection<VesselCommissioningPeriod> vesselCommissioningPeriods = new HashSet<VesselCommissioningPeriod>(); 930 931 /** 932 * Période d'armement, ou de mise en service, du navire. 933 * La mise en service est rattaché à un lieu terrestre de mise en service. Cela peut etre le 934 * pays 935 * d'armement ou le quartier d'armement. 936 * @return this.vesselCommissioningPeriods Collection<VesselCommissioningPeriod> 937 */ 938 public Collection<VesselCommissioningPeriod> getVesselCommissioningPeriods() 939 { 940 return this.vesselCommissioningPeriods; 941 } 942 943 /** 944 * Période d'armement, ou de mise en service, du navire. 945 * La mise en service est rattaché à un lieu terrestre de mise en service. Cela peut etre le 946 * pays 947 * d'armement ou le quartier d'armement. 948 * @param vesselCommissioningPeriodsIn Collection<VesselCommissioningPeriod> 949 */ 950 public void setVesselCommissioningPeriods(Collection<VesselCommissioningPeriod> vesselCommissioningPeriodsIn) 951 { 952 this.vesselCommissioningPeriods = vesselCommissioningPeriodsIn; 953 } 954 955 /** 956 * Période d'armement, ou de mise en service, du navire. 957 * La mise en service est rattaché à un lieu terrestre de mise en service. Cela peut etre le 958 * pays 959 * d'armement ou le quartier d'armement. 960 * @param elementToAdd VesselCommissioningPeriod 961 * @return <tt>true</tt> if this collection changed as a result of the 962 * call 963 */ 964 public boolean addVesselCommissioningPeriods(VesselCommissioningPeriod elementToAdd) 965 { 966 return this.vesselCommissioningPeriods.add(elementToAdd); 967 } 968 969 /** 970 * Période d'armement, ou de mise en service, du navire. 971 * La mise en service est rattaché à un lieu terrestre de mise en service. Cela peut etre le 972 * pays 973 * d'armement ou le quartier d'armement. 974 * @param elementToRemove VesselCommissioningPeriod 975 * @return <tt>true</tt> if this collection changed as a result of the 976 * call 977 */ 978 public boolean removeVesselCommissioningPeriods(VesselCommissioningPeriod elementToRemove) 979 { 980 return this.vesselCommissioningPeriods.remove(elementToRemove); 981 } 982 983 /** 984 * Returns <code>true</code> if the argument is an Vessel instance and all identifiers for this entity 985 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 986 */ 987 @Override 988 public boolean equals(Object object) 989 { 990 if (this == object) 991 { 992 return true; 993 } 994 if (!(object instanceof Vessel)) 995 { 996 return false; 997 } 998 final Vessel that = (Vessel)object; 999 if (this.code == null || that.getCode() == null || !this.code.equals(that.getCode())) 1000 { 1001 return false; 1002 } 1003 return true; 1004 } 1005 1006 /** 1007 * Returns a hash code based on this entity's identifiers. 1008 */ 1009 @Override 1010 public int hashCode() 1011 { 1012 int hashCode = 0; 1013 hashCode = 29 * hashCode + (this.code == null ? 0 : this.code.hashCode()); 1014 1015 return hashCode; 1016 } 1017 1018 /** 1019 * Constructs new instances of {@link Vessel}. 1020 */ 1021 public static final class Factory 1022 { 1023 /** 1024 * Constructs a new instance of {@link Vessel}. 1025 * @return new VesselImpl() 1026 */ 1027 public static Vessel newInstance() 1028 { 1029 return new VesselImpl(); 1030 } 1031 1032 /** 1033 * Constructs a new instance of {@link Vessel}, taking all required and/or 1034 * read-only properties as arguments, except for identifiers. 1035 * @param updateDate Timestamp 1036 * @param status Status 1037 * @param program Program 1038 * @param vesselType VesselType 1039 * @return newInstance 1040 */ 1041 public static Vessel newInstance(Timestamp updateDate, Status status, Program program, VesselType vesselType) 1042 { 1043 final Vessel entity = new VesselImpl(); 1044 entity.setUpdateDate(updateDate); 1045 entity.setStatus(status); 1046 entity.setProgram(program); 1047 entity.setVesselType(vesselType); 1048 return entity; 1049 } 1050 1051 /** 1052 * Constructs a new instance of {@link Vessel}, taking all possible properties 1053 * (except the identifier(s))as arguments. 1054 * @param updateDate Timestamp 1055 * @param vesselFleetEvents Collection<VesselFleetEvent> 1056 * @param status Status 1057 * @param vesselRegistrationPeriods Collection<VesselRegistrationPeriod> 1058 * @param vesselFeatures Collection<VesselFeatures> 1059 * @param rightToProduces Collection<RightToProduce> 1060 * @param program Program 1061 * @param vesselOwnerPeriods Collection<VesselOwnerPeriod> 1062 * @param vesselType VesselType 1063 * @param vesselCommissioningPeriods Collection<VesselCommissioningPeriod> 1064 * @return newInstance Vessel 1065 */ 1066 public static Vessel newInstance(Timestamp updateDate, Collection<VesselFleetEvent> vesselFleetEvents, Status status, Collection<VesselRegistrationPeriod> vesselRegistrationPeriods, Collection<VesselFeatures> vesselFeatures, Collection<RightToProduce> rightToProduces, Program program, Collection<VesselOwnerPeriod> vesselOwnerPeriods, VesselType vesselType, Collection<VesselCommissioningPeriod> vesselCommissioningPeriods) 1067 { 1068 final Vessel entity = new VesselImpl(); 1069 entity.setUpdateDate(updateDate); 1070 entity.setVesselFleetEvents(vesselFleetEvents); 1071 entity.setStatus(status); 1072 entity.setVesselRegistrationPeriods(vesselRegistrationPeriods); 1073 entity.setVesselFeatures(vesselFeatures); 1074 entity.setRightToProduces(rightToProduces); 1075 entity.setProgram(program); 1076 entity.setVesselOwnerPeriods(vesselOwnerPeriods); 1077 entity.setVesselType(vesselType); 1078 entity.setVesselCommissioningPeriods(vesselCommissioningPeriods); 1079 return entity; 1080 } 1081 } 1082 1083 /** 1084 * @see Comparable#compareTo 1085 */ 1086 public int compareTo(Vessel o) 1087 { 1088 int cmp = 0; 1089 if (this.getCode() != null) 1090 { 1091 cmp = this.getCode().compareTo(o.getCode()); 1092 } 1093 else 1094 { 1095 if (this.getUpdateDate() != null) 1096 { 1097 cmp = (cmp != 0 ? cmp : this.getUpdateDate().compareTo(o.getUpdateDate())); 1098 } 1099 } 1100 return cmp; 1101 } 1102// HibernateEntity.vsl merge-point 1103// Vessel.java merge-point 1104}