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.operation; 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 com.vividsolutions.jts.geom.LineString; 032import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip; 033import fr.ifremer.adagio.core.dao.data.vessel.Vessel; 034import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures; 035import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; 036import fr.ifremer.adagio.core.dao.data.vessel.feature.use.GearUseFeatures; 037import fr.ifremer.adagio.core.dao.data.vessel.feature.use.VesselUseFeatures; 038import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPosition; 039import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPositionVMS; 040import fr.ifremer.adagio.core.dao.referential.QualityFlag; 041import java.io.Serializable; 042import java.util.Collection; 043import java.util.Date; 044import java.util.HashSet; 045 046/** 047 * Opération éffectuée dans le cadre d'une marée (observée en mer, observée au débarquement, 048 * campagne en mer, marée déclarée, etc.). 049 * Une opération peut etre une opération de peche ou non. Par exemple, au cours de campagne à la 050 * mer, le navire peut déployer des engins de collecte de données environnementales (température, 051 * salinité, etc. ). 052 */ 053// HibernateEntity.vsl annotations merge-point 054public abstract class Operation 055 implements Serializable, Comparable<Operation> 056{ 057 /** 058 * The serial version UID of this class. Needed for serialization. 059 */ 060 private static final long serialVersionUID = 4065992805884536005L; 061 062 // Generate 12 attributes 063 private Integer id; 064 065 /** 066 * Identifiant unique de l'opération. 067 * @return this.id Integer 068 */ 069 public Integer getId() 070 { 071 return this.id; 072 } 073 074 /** 075 * Identifiant unique de l'opération. 076 * @param idIn Integer 077 */ 078 public void setId(Integer idIn) 079 { 080 this.id = idIn; 081 } 082 083 private String name; 084 085 /** 086 * @deprecated - NE PLUS UTILISER 087 * Libellé de l'opération. 088 * REMARQUE : attribut absent des IHM. Présent pour les données historiques. Sans doute à 089 * supprimer dans l'avenir. 090 * @return this.name String 091 */ 092 public String getName() 093 { 094 return this.name; 095 } 096 097 /** 098 * @deprecated - NE PLUS UTILISER 099 * Libellé de l'opération. 100 * REMARQUE : attribut absent des IHM. Présent pour les données historiques. Sans doute à 101 * supprimer dans l'avenir. 102 * @param nameIn String 103 */ 104 public void setName(String nameIn) 105 { 106 this.name = nameIn; 107 } 108 109 private Short rankOrderOnPeriod; 110 111 /** 112 * Rang (de présentation) de l'opération, sur la période date début/fin. 113 * ATTENTION : Lorsque plusieurs opérations sont présentes sur la meme période, cela permet de 114 * les dissocier. 115 * C'est par exemple le cas des séquences de peches (opérations agrégées en Jour/Métier/Secteur) 116 * : plusieurs opérations peuvent etre sur le meme jour (avec des engin/secteur différents), il 117 * faut donc leur attribuer un rang, pour les distinguer. Ce rang peut etre celui de la 118 * déclaration du pecheur (ordre de saisie), ou bien un ordre quelconque. 119 * Dans Allegro, ce rang sera utilisé pour ordonner ces opérations entre elles, dans les listes 120 * qui les représentent. S'il est absent, seule la date de début est utilisée pour cela. 121 * @return this.rankOrderOnPeriod Short 122 */ 123 public Short getRankOrderOnPeriod() 124 { 125 return this.rankOrderOnPeriod; 126 } 127 128 /** 129 * Rang (de présentation) de l'opération, sur la période date début/fin. 130 * ATTENTION : Lorsque plusieurs opérations sont présentes sur la meme période, cela permet de 131 * les dissocier. 132 * C'est par exemple le cas des séquences de peches (opérations agrégées en Jour/Métier/Secteur) 133 * : plusieurs opérations peuvent etre sur le meme jour (avec des engin/secteur différents), il 134 * faut donc leur attribuer un rang, pour les distinguer. Ce rang peut etre celui de la 135 * déclaration du pecheur (ordre de saisie), ou bien un ordre quelconque. 136 * Dans Allegro, ce rang sera utilisé pour ordonner ces opérations entre elles, dans les listes 137 * qui les représentent. S'il est absent, seule la date de début est utilisée pour cela. 138 * @param rankOrderOnPeriodIn Short 139 */ 140 public void setRankOrderOnPeriod(Short rankOrderOnPeriodIn) 141 { 142 this.rankOrderOnPeriod = rankOrderOnPeriodIn; 143 } 144 145 private Date startDateTime; 146 147 /** 148 * Date/heure de début de l'opération 149 * @return this.startDateTime Date 150 */ 151 public Date getStartDateTime() 152 { 153 return this.startDateTime; 154 } 155 156 /** 157 * Date/heure de début de l'opération 158 * @param startDateTimeIn Date 159 */ 160 public void setStartDateTime(Date startDateTimeIn) 161 { 162 this.startDateTime = startDateTimeIn; 163 } 164 165 private Date endDateTime; 166 167 /** 168 * Date/heure de fin de l'opération 169 * @return this.endDateTime Date 170 */ 171 public Date getEndDateTime() 172 { 173 return this.endDateTime; 174 } 175 176 /** 177 * Date/heure de fin de l'opération 178 * @param endDateTimeIn Date 179 */ 180 public void setEndDateTime(Date endDateTimeIn) 181 { 182 this.endDateTime = endDateTimeIn; 183 } 184 185 private Boolean isMainOperation; 186 187 /** 188 * <html> 189 * <head> 190 * <style> 191 * p {padding:0px; margin:0px;} 192 * </style> 193 * </head> 194 * <body> 195 * <p> 196 * Indique s'il s'agit d'une opération ou d'un groupe d'opérations "principal". 197 * </p> 198 * <p> 199 * Cela est utilisé notamment quand on ne connait que l'activité principale (le métier) d'un 200 * navire. On parle alors de métrier principal. 201 * <br> 202 * </p> 203 * <p> 204 *   205 * </p> 206 * <p> 207 * Généralement, cet atrribut est utilisé pour des groupes d'opérations (<i>rankOrderOnPerod is 208 * not null</i>), pour identifier sur la marée ou une journée de peche, le groupe d'opération 209 * portant le métier principal de la marée ou de la journée. 210 * </p> 211 * </body> 212 * </html> 213 * @return this.isMainOperation Boolean 214 */ 215 public Boolean getIsMainOperation() 216 { 217 return this.isMainOperation; 218 } 219 220 /** 221 * <html> 222 * <head> 223 * <style> 224 * p {padding:0px; margin:0px;} 225 * </style> 226 * </head> 227 * <body> 228 * <p> 229 * Indique s'il s'agit d'une opération ou d'un groupe d'opérations "principal". 230 * </p> 231 * <p> 232 * Cela est utilisé notamment quand on ne connait que l'activité principale (le métier) d'un 233 * navire. On parle alors de métrier principal. 234 * <br> 235 * </p> 236 * <p> 237 *   238 * </p> 239 * <p> 240 * Généralement, cet atrribut est utilisé pour des groupes d'opérations (<i>rankOrderOnPerod is 241 * not null</i>), pour identifier sur la marée ou une journée de peche, le groupe d'opération 242 * portant le métier principal de la marée ou de la journée. 243 * </p> 244 * </body> 245 * </html> 246 * @param isMainOperationIn Boolean 247 */ 248 public void setIsMainOperation(Boolean isMainOperationIn) 249 { 250 this.isMainOperation = isMainOperationIn; 251 } 252 253 private LineString position; 254 255 /** 256 * Géométrie de l'opération. 257 * Ce champ est optionnel pour etre compatible avec uDIG/geotools. 258 * @return this.position LineString 259 */ 260 public LineString getPosition() 261 { 262 return this.position; 263 } 264 265 /** 266 * Géométrie de l'opération. 267 * Ce champ est optionnel pour etre compatible avec uDIG/geotools. 268 * @param positionIn LineString 269 */ 270 public void setPosition(LineString positionIn) 271 { 272 this.position = positionIn; 273 } 274 275 private String comments; 276 277 /** 278 * 279 * @return this.comments String 280 */ 281 public String getComments() 282 { 283 return this.comments; 284 } 285 286 /** 287 * 288 * @param commentsIn String 289 */ 290 public void setComments(String commentsIn) 291 { 292 this.comments = commentsIn; 293 } 294 295 private Date controlDate; 296 297 /** 298 * 299 * @return this.controlDate Date 300 */ 301 public Date getControlDate() 302 { 303 return this.controlDate; 304 } 305 306 /** 307 * 308 * @param controlDateIn Date 309 */ 310 public void setControlDate(Date controlDateIn) 311 { 312 this.controlDate = controlDateIn; 313 } 314 315 private Date validationDate; 316 317 /** 318 * 319 * @return this.validationDate Date 320 */ 321 public Date getValidationDate() 322 { 323 return this.validationDate; 324 } 325 326 /** 327 * 328 * @param validationDateIn Date 329 */ 330 public void setValidationDate(Date validationDateIn) 331 { 332 this.validationDate = validationDateIn; 333 } 334 335 private Date qualificationDate; 336 337 /** 338 * 339 * @return this.qualificationDate Date 340 */ 341 public Date getQualificationDate() 342 { 343 return this.qualificationDate; 344 } 345 346 /** 347 * 348 * @param qualificationDateIn Date 349 */ 350 public void setQualificationDate(Date qualificationDateIn) 351 { 352 this.qualificationDate = qualificationDateIn; 353 } 354 355 private String qualificationComments; 356 357 /** 358 * 359 * @return this.qualificationComments String 360 */ 361 public String getQualificationComments() 362 { 363 return this.qualificationComments; 364 } 365 366 /** 367 * 368 * @param qualificationCommentsIn String 369 */ 370 public void setQualificationComments(String qualificationCommentsIn) 371 { 372 this.qualificationComments = qualificationCommentsIn; 373 } 374 375 // Generate 11 associations 376 private Collection<VesselPersonFeatures> vesselPersonFeatures = new HashSet<VesselPersonFeatures>(); 377 378 /** 379 * Utilisé par exemple pour stocker les saisisseurs d'une opération, dans les campagne à la mer. 380 * @return this.vesselPersonFeatures Collection<VesselPersonFeatures> 381 */ 382 public Collection<VesselPersonFeatures> getVesselPersonFeatures() 383 { 384 return this.vesselPersonFeatures; 385 } 386 387 /** 388 * Utilisé par exemple pour stocker les saisisseurs d'une opération, dans les campagne à la mer. 389 * @param vesselPersonFeaturesIn Collection<VesselPersonFeatures> 390 */ 391 public void setVesselPersonFeatures(Collection<VesselPersonFeatures> vesselPersonFeaturesIn) 392 { 393 this.vesselPersonFeatures = vesselPersonFeaturesIn; 394 } 395 396 /** 397 * Utilisé par exemple pour stocker les saisisseurs d'une opération, dans les campagne à la mer. 398 * @param elementToAdd VesselPersonFeatures 399 * @return <tt>true</tt> if this collection changed as a result of the 400 * call 401 */ 402 public boolean addVesselPersonFeatures(VesselPersonFeatures elementToAdd) 403 { 404 return this.vesselPersonFeatures.add(elementToAdd); 405 } 406 407 /** 408 * Utilisé par exemple pour stocker les saisisseurs d'une opération, dans les campagne à la mer. 409 * @param elementToRemove VesselPersonFeatures 410 * @return <tt>true</tt> if this collection changed as a result of the 411 * call 412 */ 413 public boolean removeVesselPersonFeatures(VesselPersonFeatures elementToRemove) 414 { 415 return this.vesselPersonFeatures.remove(elementToRemove); 416 } 417 418 private QualityFlag qualityFlag; 419 420 /** 421 * Niveau de qualité de la donnée. 422 * "Non qualifiée" par défaut 423 * @return this.qualityFlag QualityFlag 424 */ 425 public QualityFlag getQualityFlag() 426 { 427 return this.qualityFlag; 428 } 429 430 /** 431 * Niveau de qualité de la donnée. 432 * "Non qualifiée" par défaut 433 * @param qualityFlagIn QualityFlag 434 */ 435 public void setQualityFlag(QualityFlag qualityFlagIn) 436 { 437 this.qualityFlag = qualityFlagIn; 438 } 439 440 private Vessel vessel; 441 442 /** 443 * Navire, ou plus généralement un usager de la ressource. 444 * Peut etre un navire de peche professionnel ou non, un navire scientifique, un pêcheur à pied, 445 * un 446 * groupement de navires, etc. 447 * @return this.vessel Vessel 448 */ 449 public Vessel getVessel() 450 { 451 return this.vessel; 452 } 453 454 /** 455 * Navire, ou plus généralement un usager de la ressource. 456 * Peut etre un navire de peche professionnel ou non, un navire scientifique, un pêcheur à pied, 457 * un 458 * groupement de navires, etc. 459 * @param vesselIn Vessel 460 */ 461 public void setVessel(Vessel vesselIn) 462 { 463 this.vessel = vesselIn; 464 } 465 466 private Collection<OperationVesselAssociation> operationVesselAssociations = new HashSet<OperationVesselAssociation>(); 467 468 /** 469 * Informations permet de décrire, par exemple la stratégie de répartition entre le navire 470 * observé et 471 * le navire associé pour l'opération. 472 * En effet, des navires travaillent en paires (ou en bœufs), par exemple pour tirer à deux un 473 * meme 474 * chalut. 475 * note : Il peut s'agir d'un navire temporaire. 476 * @return this.operationVesselAssociations Collection<OperationVesselAssociation> 477 */ 478 public Collection<OperationVesselAssociation> getOperationVesselAssociations() 479 { 480 return this.operationVesselAssociations; 481 } 482 483 /** 484 * Informations permet de décrire, par exemple la stratégie de répartition entre le navire 485 * observé et 486 * le navire associé pour l'opération. 487 * En effet, des navires travaillent en paires (ou en bœufs), par exemple pour tirer à deux un 488 * meme 489 * chalut. 490 * note : Il peut s'agir d'un navire temporaire. 491 * @param operationVesselAssociationsIn Collection<OperationVesselAssociation> 492 */ 493 public void setOperationVesselAssociations(Collection<OperationVesselAssociation> operationVesselAssociationsIn) 494 { 495 this.operationVesselAssociations = operationVesselAssociationsIn; 496 } 497 498 /** 499 * Informations permet de décrire, par exemple la stratégie de répartition entre le navire 500 * observé et 501 * le navire associé pour l'opération. 502 * En effet, des navires travaillent en paires (ou en bœufs), par exemple pour tirer à deux un 503 * meme 504 * chalut. 505 * note : Il peut s'agir d'un navire temporaire. 506 * @param elementToAdd OperationVesselAssociation 507 * @return <tt>true</tt> if this collection changed as a result of the 508 * call 509 */ 510 public boolean addOperationVesselAssociations(OperationVesselAssociation elementToAdd) 511 { 512 return this.operationVesselAssociations.add(elementToAdd); 513 } 514 515 /** 516 * Informations permet de décrire, par exemple la stratégie de répartition entre le navire 517 * observé et 518 * le navire associé pour l'opération. 519 * En effet, des navires travaillent en paires (ou en bœufs), par exemple pour tirer à deux un 520 * meme 521 * chalut. 522 * note : Il peut s'agir d'un navire temporaire. 523 * @param elementToRemove OperationVesselAssociation 524 * @return <tt>true</tt> if this collection changed as a result of the 525 * call 526 */ 527 public boolean removeOperationVesselAssociations(OperationVesselAssociation elementToRemove) 528 { 529 return this.operationVesselAssociations.remove(elementToRemove); 530 } 531 532 private Collection<GearUseFeatures> gearUseFeatures = new HashSet<GearUseFeatures>(); 533 534 /** 535 * Paramètre de mise en oeuvre de l'engin durant une opération. 536 * Exemple de paramètre de mise en oeuvre: 537 * • nombre de boués, 538 * • type de panneau, 539 * • présence d'un racasseur, 540 * • nombre de casier. 541 * mais aussi : 542 * • profondeur moyenne de l'engin, 543 * • vitesse de traine moyenne 544 * • ouverture du chalut 545 * @return this.gearUseFeatures Collection<GearUseFeatures> 546 */ 547 public Collection<GearUseFeatures> getGearUseFeatures() 548 { 549 return this.gearUseFeatures; 550 } 551 552 /** 553 * Paramètre de mise en oeuvre de l'engin durant une opération. 554 * Exemple de paramètre de mise en oeuvre: 555 * • nombre de boués, 556 * • type de panneau, 557 * • présence d'un racasseur, 558 * • nombre de casier. 559 * mais aussi : 560 * • profondeur moyenne de l'engin, 561 * • vitesse de traine moyenne 562 * • ouverture du chalut 563 * @param gearUseFeaturesIn Collection<GearUseFeatures> 564 */ 565 public void setGearUseFeatures(Collection<GearUseFeatures> gearUseFeaturesIn) 566 { 567 this.gearUseFeatures = gearUseFeaturesIn; 568 } 569 570 /** 571 * Paramètre de mise en oeuvre de l'engin durant une opération. 572 * Exemple de paramètre de mise en oeuvre: 573 * • nombre de boués, 574 * • type de panneau, 575 * • présence d'un racasseur, 576 * • nombre de casier. 577 * mais aussi : 578 * • profondeur moyenne de l'engin, 579 * • vitesse de traine moyenne 580 * • ouverture du chalut 581 * @param elementToAdd GearUseFeatures 582 * @return <tt>true</tt> if this collection changed as a result of the 583 * call 584 */ 585 public boolean addGearUseFeatures(GearUseFeatures elementToAdd) 586 { 587 return this.gearUseFeatures.add(elementToAdd); 588 } 589 590 /** 591 * Paramètre de mise en oeuvre de l'engin durant une opération. 592 * Exemple de paramètre de mise en oeuvre: 593 * • nombre de boués, 594 * • type de panneau, 595 * • présence d'un racasseur, 596 * • nombre de casier. 597 * mais aussi : 598 * • profondeur moyenne de l'engin, 599 * • vitesse de traine moyenne 600 * • ouverture du chalut 601 * @param elementToRemove GearUseFeatures 602 * @return <tt>true</tt> if this collection changed as a result of the 603 * call 604 */ 605 public boolean removeGearUseFeatures(GearUseFeatures elementToRemove) 606 { 607 return this.gearUseFeatures.remove(elementToRemove); 608 } 609 610 private Collection<VesselUseFeatures> vesselUseFeatures = new HashSet<VesselUseFeatures>(); 611 612 /** 613 * Paramètres de mise en oeuvre du navire. Il peut s'agir de données d'observation comme de 614 * données de 615 * déclaration, mais liée à comment est utilisé le navire et dans quelles conditions. 616 * Par exemple, pour les donénes d'observation : 617 * • profondeur de mer au début de l'opération, en mètre, 618 * • profondeur de mer à la fin de l'opération, en mètre, 619 * • déroulement de l'opération (normal, anormal, etc.) 620 * • état de la mer lors durant l'opération : échelle de 0 à 9 (4=agitée, etc) 621 * • trait rectiligne (oui/non) 622 * • cout en gazoil, 623 * • nombre d'engin perdu, 624 * • cout des pertes, 625 * • etc. 626 * Par exemple, pour les données de déclaration : 627 * • temps de pêche, 628 * • temps de route (qui peut aussi etre calculé à l'exploitation), 629 * • nombre d'opérations, 630 * • etc. 631 * @return this.vesselUseFeatures Collection<VesselUseFeatures> 632 */ 633 public Collection<VesselUseFeatures> getVesselUseFeatures() 634 { 635 return this.vesselUseFeatures; 636 } 637 638 /** 639 * Paramètres de mise en oeuvre du navire. Il peut s'agir de données d'observation comme de 640 * données de 641 * déclaration, mais liée à comment est utilisé le navire et dans quelles conditions. 642 * Par exemple, pour les donénes d'observation : 643 * • profondeur de mer au début de l'opération, en mètre, 644 * • profondeur de mer à la fin de l'opération, en mètre, 645 * • déroulement de l'opération (normal, anormal, etc.) 646 * • état de la mer lors durant l'opération : échelle de 0 à 9 (4=agitée, etc) 647 * • trait rectiligne (oui/non) 648 * • cout en gazoil, 649 * • nombre d'engin perdu, 650 * • cout des pertes, 651 * • etc. 652 * Par exemple, pour les données de déclaration : 653 * • temps de pêche, 654 * • temps de route (qui peut aussi etre calculé à l'exploitation), 655 * • nombre d'opérations, 656 * • etc. 657 * @param vesselUseFeaturesIn Collection<VesselUseFeatures> 658 */ 659 public void setVesselUseFeatures(Collection<VesselUseFeatures> vesselUseFeaturesIn) 660 { 661 this.vesselUseFeatures = vesselUseFeaturesIn; 662 } 663 664 /** 665 * Paramètres de mise en oeuvre du navire. Il peut s'agir de données d'observation comme de 666 * données de 667 * déclaration, mais liée à comment est utilisé le navire et dans quelles conditions. 668 * Par exemple, pour les donénes d'observation : 669 * • profondeur de mer au début de l'opération, en mètre, 670 * • profondeur de mer à la fin de l'opération, en mètre, 671 * • déroulement de l'opération (normal, anormal, etc.) 672 * • état de la mer lors durant l'opération : échelle de 0 à 9 (4=agitée, etc) 673 * • trait rectiligne (oui/non) 674 * • cout en gazoil, 675 * • nombre d'engin perdu, 676 * • cout des pertes, 677 * • etc. 678 * Par exemple, pour les données de déclaration : 679 * • temps de pêche, 680 * • temps de route (qui peut aussi etre calculé à l'exploitation), 681 * • nombre d'opérations, 682 * • etc. 683 * @param elementToAdd VesselUseFeatures 684 * @return <tt>true</tt> if this collection changed as a result of the 685 * call 686 */ 687 public boolean addVesselUseFeatures(VesselUseFeatures elementToAdd) 688 { 689 return this.vesselUseFeatures.add(elementToAdd); 690 } 691 692 /** 693 * Paramètres de mise en oeuvre du navire. Il peut s'agir de données d'observation comme de 694 * données de 695 * déclaration, mais liée à comment est utilisé le navire et dans quelles conditions. 696 * Par exemple, pour les donénes d'observation : 697 * • profondeur de mer au début de l'opération, en mètre, 698 * • profondeur de mer à la fin de l'opération, en mètre, 699 * • déroulement de l'opération (normal, anormal, etc.) 700 * • état de la mer lors durant l'opération : échelle de 0 à 9 (4=agitée, etc) 701 * • trait rectiligne (oui/non) 702 * • cout en gazoil, 703 * • nombre d'engin perdu, 704 * • cout des pertes, 705 * • etc. 706 * Par exemple, pour les données de déclaration : 707 * • temps de pêche, 708 * • temps de route (qui peut aussi etre calculé à l'exploitation), 709 * • nombre d'opérations, 710 * • etc. 711 * @param elementToRemove VesselUseFeatures 712 * @return <tt>true</tt> if this collection changed as a result of the 713 * call 714 */ 715 public boolean removeVesselUseFeatures(VesselUseFeatures elementToRemove) 716 { 717 return this.vesselUseFeatures.remove(elementToRemove); 718 } 719 720 private GearPhysicalFeatures gearPhysicalFeatures; 721 722 /** 723 * Caractéristiques physique de l'engin déployé au cours de l'opération. 724 * Si l'opération est une opération de prélèvement, l'engin est forcément d'un engin de peche. 725 * Exemple de caratéristiques physiques : 726 * • engin : OTB (Chalut) 727 * • longueur de la corde de dos 728 * • largeur du maillage 729 * • type de matériaux du fil 730 * @return this.gearPhysicalFeatures GearPhysicalFeatures 731 */ 732 public GearPhysicalFeatures getGearPhysicalFeatures() 733 { 734 return this.gearPhysicalFeatures; 735 } 736 737 /** 738 * Caractéristiques physique de l'engin déployé au cours de l'opération. 739 * Si l'opération est une opération de prélèvement, l'engin est forcément d'un engin de peche. 740 * Exemple de caratéristiques physiques : 741 * • engin : OTB (Chalut) 742 * • longueur de la corde de dos 743 * • largeur du maillage 744 * • type de matériaux du fil 745 * @param gearPhysicalFeaturesIn GearPhysicalFeatures 746 */ 747 public void setGearPhysicalFeatures(GearPhysicalFeatures gearPhysicalFeaturesIn) 748 { 749 this.gearPhysicalFeatures = gearPhysicalFeaturesIn; 750 } 751 752 private Collection<VesselPositionVMS> vesselPositionVMSs = new HashSet<VesselPositionVMS>(); 753 754 /** 755 * Positions du navires durant l'opération (date/heure/latitute/longitude). 756 * La première position (en date/heure) correspond au début de l'opération. 757 * La dernière position (en date/heure) correspond à la fin de l'opération. 758 * @return this.vesselPositionVMSs Collection<VesselPositionVMS> 759 */ 760 public Collection<VesselPositionVMS> getVesselPositionVMSs() 761 { 762 return this.vesselPositionVMSs; 763 } 764 765 /** 766 * Positions du navires durant l'opération (date/heure/latitute/longitude). 767 * La première position (en date/heure) correspond au début de l'opération. 768 * La dernière position (en date/heure) correspond à la fin de l'opération. 769 * @param vesselPositionVMSsIn Collection<VesselPositionVMS> 770 */ 771 public void setVesselPositionVMSs(Collection<VesselPositionVMS> vesselPositionVMSsIn) 772 { 773 this.vesselPositionVMSs = vesselPositionVMSsIn; 774 } 775 776 /** 777 * Positions du navires durant l'opération (date/heure/latitute/longitude). 778 * La première position (en date/heure) correspond au début de l'opération. 779 * La dernière position (en date/heure) correspond à la fin de l'opération. 780 * @param elementToAdd VesselPositionVMS 781 * @return <tt>true</tt> if this collection changed as a result of the 782 * call 783 */ 784 public boolean addVesselPositionVMSs(VesselPositionVMS elementToAdd) 785 { 786 return this.vesselPositionVMSs.add(elementToAdd); 787 } 788 789 /** 790 * Positions du navires durant l'opération (date/heure/latitute/longitude). 791 * La première position (en date/heure) correspond au début de l'opération. 792 * La dernière position (en date/heure) correspond à la fin de l'opération. 793 * @param elementToRemove VesselPositionVMS 794 * @return <tt>true</tt> if this collection changed as a result of the 795 * call 796 */ 797 public boolean removeVesselPositionVMSs(VesselPositionVMS elementToRemove) 798 { 799 return this.vesselPositionVMSs.remove(elementToRemove); 800 } 801 802 private Collection<VesselPosition> vesselPositions = new HashSet<VesselPosition>(); 803 804 /** 805 * 806 * @return this.vesselPositions Collection<VesselPosition> 807 */ 808 public Collection<VesselPosition> getVesselPositions() 809 { 810 return this.vesselPositions; 811 } 812 813 /** 814 * 815 * @param vesselPositionsIn Collection<VesselPosition> 816 */ 817 public void setVesselPositions(Collection<VesselPosition> vesselPositionsIn) 818 { 819 this.vesselPositions = vesselPositionsIn; 820 } 821 822 /** 823 * 824 * @param elementToAdd VesselPosition 825 * @return <tt>true</tt> if this collection changed as a result of the 826 * call 827 */ 828 public boolean addVesselPositions(VesselPosition elementToAdd) 829 { 830 return this.vesselPositions.add(elementToAdd); 831 } 832 833 /** 834 * 835 * @param elementToRemove VesselPosition 836 * @return <tt>true</tt> if this collection changed as a result of the 837 * call 838 */ 839 public boolean removeVesselPositions(VesselPosition elementToRemove) 840 { 841 return this.vesselPositions.remove(elementToRemove); 842 } 843 844 private FishingTrip fishingTrip; 845 846 /** 847 * Voyage en mer, ayant pour vocation une activité de peche (peut etre une campagnes halieutique 848 * ou une 849 * marée d'un navire professionnel, etc.) 850 * Un voyage peut représenter type de données : 851 * - Une marée observée (en mer, au débarquement), qui désigne une marée de pêche 852 * professionnelle au 853 * cours de laquelle des relevés sont effectués par un observateur. 854 * - Une marée déclarée. Principalement issue du log book électronique (flux SACAPT). Une marée 855 * déclarée peut etre un ensemble de marée ou de sous-ensembles de marée (Exemple de la fiche de 856 * peche) 857 * - une sortie effectuée lors d"une campagne scientifique 858 * @return this.fishingTrip FishingTrip 859 */ 860 public FishingTrip getFishingTrip() 861 { 862 return this.fishingTrip; 863 } 864 865 /** 866 * Voyage en mer, ayant pour vocation une activité de peche (peut etre une campagnes halieutique 867 * ou une 868 * marée d'un navire professionnel, etc.) 869 * Un voyage peut représenter type de données : 870 * - Une marée observée (en mer, au débarquement), qui désigne une marée de pêche 871 * professionnelle au 872 * cours de laquelle des relevés sont effectués par un observateur. 873 * - Une marée déclarée. Principalement issue du log book électronique (flux SACAPT). Une marée 874 * déclarée peut etre un ensemble de marée ou de sous-ensembles de marée (Exemple de la fiche de 875 * peche) 876 * - une sortie effectuée lors d"une campagne scientifique 877 * @param fishingTripIn FishingTrip 878 */ 879 public void setFishingTrip(FishingTrip fishingTripIn) 880 { 881 this.fishingTrip = fishingTripIn; 882 } 883 884 /** 885 * Returns <code>true</code> if the argument is an Operation instance and all identifiers for this entity 886 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 887 */ 888 @Override 889 public boolean equals(Object object) 890 { 891 if (this == object) 892 { 893 return true; 894 } 895 if (!(object instanceof Operation)) 896 { 897 return false; 898 } 899 final Operation that = (Operation)object; 900 if (this.id == null || that.getId() == null || !this.id.equals(that.getId())) 901 { 902 return false; 903 } 904 return true; 905 } 906 907 /** 908 * Returns a hash code based on this entity's identifiers. 909 */ 910 @Override 911 public int hashCode() 912 { 913 int hashCode = 0; 914 hashCode = 29 * hashCode + (this.id == null ? 0 : this.id.hashCode()); 915 916 return hashCode; 917 } 918 919 /** 920 * Constructs new instances of {@link Operation}. 921 */ 922 public static final class Factory 923 { 924 /** 925 * Constructs a new instance of {@link Operation}. 926 * @return new OperationImpl() 927 */ 928 public static Operation newInstance() 929 { 930 return new OperationImpl(); 931 } 932 933 /** 934 * Constructs a new instance of {@link Operation}, taking all required and/or 935 * read-only properties as arguments, except for identifiers. 936 * @param qualityFlag QualityFlag 937 * @param vessel Vessel 938 * @return newInstance 939 */ 940 public static Operation newInstance(QualityFlag qualityFlag, Vessel vessel) 941 { 942 final Operation entity = new OperationImpl(); 943 entity.setQualityFlag(qualityFlag); 944 entity.setVessel(vessel); 945 return entity; 946 } 947 948 /** 949 * Constructs a new instance of {@link Operation}, taking all possible properties 950 * (except the identifier(s))as arguments. 951 * @param name String 952 * @param rankOrderOnPeriod Short 953 * @param startDateTime Date 954 * @param endDateTime Date 955 * @param isMainOperation Boolean 956 * @param position LineString 957 * @param comments String 958 * @param controlDate Date 959 * @param validationDate Date 960 * @param qualificationDate Date 961 * @param qualificationComments String 962 * @param vesselPersonFeatures Collection<VesselPersonFeatures> 963 * @param qualityFlag QualityFlag 964 * @param vessel Vessel 965 * @param operationVesselAssociations Collection<OperationVesselAssociation> 966 * @param gearUseFeatures Collection<GearUseFeatures> 967 * @param vesselUseFeatures Collection<VesselUseFeatures> 968 * @param gearPhysicalFeatures GearPhysicalFeatures 969 * @param vesselPositionVMSs Collection<VesselPositionVMS> 970 * @param vesselPositions Collection<VesselPosition> 971 * @param fishingTrip FishingTrip 972 * @return newInstance Operation 973 */ 974 public static Operation newInstance(String name, Short rankOrderOnPeriod, Date startDateTime, Date endDateTime, Boolean isMainOperation, LineString position, String comments, Date controlDate, Date validationDate, Date qualificationDate, String qualificationComments, Collection<VesselPersonFeatures> vesselPersonFeatures, QualityFlag qualityFlag, Vessel vessel, Collection<OperationVesselAssociation> operationVesselAssociations, Collection<GearUseFeatures> gearUseFeatures, Collection<VesselUseFeatures> vesselUseFeatures, GearPhysicalFeatures gearPhysicalFeatures, Collection<VesselPositionVMS> vesselPositionVMSs, Collection<VesselPosition> vesselPositions, FishingTrip fishingTrip) 975 { 976 final Operation entity = new OperationImpl(); 977 entity.setName(name); 978 entity.setRankOrderOnPeriod(rankOrderOnPeriod); 979 entity.setStartDateTime(startDateTime); 980 entity.setEndDateTime(endDateTime); 981 entity.setIsMainOperation(isMainOperation); 982 entity.setPosition(position); 983 entity.setComments(comments); 984 entity.setControlDate(controlDate); 985 entity.setValidationDate(validationDate); 986 entity.setQualificationDate(qualificationDate); 987 entity.setQualificationComments(qualificationComments); 988 entity.setVesselPersonFeatures(vesselPersonFeatures); 989 entity.setQualityFlag(qualityFlag); 990 entity.setVessel(vessel); 991 entity.setOperationVesselAssociations(operationVesselAssociations); 992 entity.setGearUseFeatures(gearUseFeatures); 993 entity.setVesselUseFeatures(vesselUseFeatures); 994 entity.setGearPhysicalFeatures(gearPhysicalFeatures); 995 entity.setVesselPositionVMSs(vesselPositionVMSs); 996 entity.setVesselPositions(vesselPositions); 997 entity.setFishingTrip(fishingTrip); 998 return entity; 999 } 1000 } 1001 1002 /** 1003 * @see Comparable#compareTo 1004 */ 1005 public int compareTo(Operation o) 1006 { 1007 int cmp = 0; 1008 if (this.getId() != null) 1009 { 1010 cmp = this.getId().compareTo(o.getId()); 1011 } 1012 else 1013 { 1014 if (this.getName() != null) 1015 { 1016 cmp = (cmp != 0 ? cmp : this.getName().compareTo(o.getName())); 1017 } 1018 if (this.getRankOrderOnPeriod() != null) 1019 { 1020 cmp = (cmp != 0 ? cmp : this.getRankOrderOnPeriod().compareTo(o.getRankOrderOnPeriod())); 1021 } 1022 if (this.getStartDateTime() != null) 1023 { 1024 cmp = (cmp != 0 ? cmp : this.getStartDateTime().compareTo(o.getStartDateTime())); 1025 } 1026 if (this.getEndDateTime() != null) 1027 { 1028 cmp = (cmp != 0 ? cmp : this.getEndDateTime().compareTo(o.getEndDateTime())); 1029 } 1030 if (this.getIsMainOperation() != null) 1031 { 1032 cmp = (cmp != 0 ? cmp : this.getIsMainOperation().compareTo(o.getIsMainOperation())); 1033 } 1034 if (this.getPosition() != null) 1035 { 1036 cmp = (cmp != 0 ? cmp : this.getPosition().compareTo(o.getPosition())); 1037 } 1038 if (this.getComments() != null) 1039 { 1040 cmp = (cmp != 0 ? cmp : this.getComments().compareTo(o.getComments())); 1041 } 1042 if (this.getControlDate() != null) 1043 { 1044 cmp = (cmp != 0 ? cmp : this.getControlDate().compareTo(o.getControlDate())); 1045 } 1046 if (this.getValidationDate() != null) 1047 { 1048 cmp = (cmp != 0 ? cmp : this.getValidationDate().compareTo(o.getValidationDate())); 1049 } 1050 if (this.getQualificationDate() != null) 1051 { 1052 cmp = (cmp != 0 ? cmp : this.getQualificationDate().compareTo(o.getQualificationDate())); 1053 } 1054 if (this.getQualificationComments() != null) 1055 { 1056 cmp = (cmp != 0 ? cmp : this.getQualificationComments().compareTo(o.getQualificationComments())); 1057 } 1058 } 1059 return cmp; 1060 } 1061// HibernateEntity.vsl merge-point 1062// Operation.java merge-point 1063}