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.batch.CatchBatch; 033import fr.ifremer.adagio.core.dao.data.produce.Produce; 034import fr.ifremer.adagio.core.dao.data.sample.Sample; 035import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip; 036import fr.ifremer.adagio.core.dao.data.vessel.Vessel; 037import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures; 038import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; 039import fr.ifremer.adagio.core.dao.data.vessel.feature.use.GearUseFeatures; 040import fr.ifremer.adagio.core.dao.data.vessel.feature.use.VesselUseFeatures; 041import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPosition; 042import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPositionVMS; 043import fr.ifremer.adagio.core.dao.referential.QualityFlag; 044import java.util.Collection; 045import java.util.Date; 046import java.util.HashSet; 047 048/** 049 * Opération de peche durant laquelle un prélèvement peut etre effectué, au cours d'une sortie en 050 * mer (marée observée en mer, marée enquetée au débarquement, sortie lors d'une campagne à la mer, 051 * etc.). 052 * Il peut également s'agir d'une séquence de peche, lorsque les dates début/fin ne sont pas connus, 053 * et si la zone de peche est unique. 054 * Les dates/heures et lat/long de début/fin caractérisent le début/fin de la capture réalisée (hors 055 * temps d'établissement de l'engin). 056 * REMARQUE : les caractéristiques "indicateur jour/nuit" et "Trajectoire rectiligne ou non" sont 057 * présent à ce niveau dans Harmonie, mais gérés dans Allegro via les "cracatéristique d'utilisation 058 * du navire" (VesselUseFeatures) rattachée à l'opération parente. 059 */ 060// HibernateEntity.vsl annotations merge-point 061public abstract class FishingOperation 062 extends OperationImpl 063{ 064 /** 065 * The serial version UID of this class. Needed for serialization. 066 */ 067 private static final long serialVersionUID = -5247889332101799215L; 068 069 // Generate 3 attributes 070 private Date fishingStartDateTime; 071 072 /** 073 * Date/heure au début du prélèvement. 074 * Par exemple, pour le cas d'une opération avec un chalut, il s'agit la date/heure à 075 * l'établissement du chalut (le temps de descente n'est pas pris en compte). 076 * @return this.fishingStartDateTime Date 077 */ 078 public Date getFishingStartDateTime() 079 { 080 return this.fishingStartDateTime; 081 } 082 083 /** 084 * Date/heure au début du prélèvement. 085 * Par exemple, pour le cas d'une opération avec un chalut, il s'agit la date/heure à 086 * l'établissement du chalut (le temps de descente n'est pas pris en compte). 087 * @param fishingStartDateTimeIn Date 088 */ 089 public void setFishingStartDateTime(Date fishingStartDateTimeIn) 090 { 091 this.fishingStartDateTime = fishingStartDateTimeIn; 092 } 093 094 private Date fishingEndDateTime; 095 096 /** 097 * Date/heure à la fin du prélèvement. 098 * Par exemple, pour le cas d'une opération avec un chalut, le temps de remontée n'est pas 099 * comptabilisé. 100 * @return this.fishingEndDateTime Date 101 */ 102 public Date getFishingEndDateTime() 103 { 104 return this.fishingEndDateTime; 105 } 106 107 /** 108 * Date/heure à la fin du prélèvement. 109 * Par exemple, pour le cas d'une opération avec un chalut, le temps de remontée n'est pas 110 * comptabilisé. 111 * @param fishingEndDateTimeIn Date 112 */ 113 public void setFishingEndDateTime(Date fishingEndDateTimeIn) 114 { 115 this.fishingEndDateTime = fishingEndDateTimeIn; 116 } 117 118 private Boolean hasCatch; 119 120 /** 121 * Une capture a t elle été prélevée ? 122 * Si non, il s'agit d'une opération de peche infructueuse. 123 * A priori, si une capture avec quantification différente de 0 est saisie, ou bien si des 124 * produits sont rattachés à l'opération, alors hasCatch=true (HAS_CATCH=1). 125 * Si on ne sait pas si une capture a été réalisée ou non, le champ est laissé vide. 126 * Champ utile pour les marées observées au débarquement, pour lesquelles on ne peut pas saisir 127 * systématiquement de lot capture ou bien des produits. 128 * @return this.hasCatch Boolean 129 */ 130 public Boolean getHasCatch() 131 { 132 return this.hasCatch; 133 } 134 135 /** 136 * Une capture a t elle été prélevée ? 137 * Si non, il s'agit d'une opération de peche infructueuse. 138 * A priori, si une capture avec quantification différente de 0 est saisie, ou bien si des 139 * produits sont rattachés à l'opération, alors hasCatch=true (HAS_CATCH=1). 140 * Si on ne sait pas si une capture a été réalisée ou non, le champ est laissé vide. 141 * Champ utile pour les marées observées au débarquement, pour lesquelles on ne peut pas saisir 142 * systématiquement de lot capture ou bien des produits. 143 * @param hasCatchIn Boolean 144 */ 145 public void setHasCatch(Boolean hasCatchIn) 146 { 147 this.hasCatch = hasCatchIn; 148 } 149 150 // Generate 3 associations 151 private Collection<Produce> produces = new HashSet<Produce>(); 152 153 /** 154 * <html> 155 * <head> 156 * </head> 157 * <body> 158 * <p> 159 * Un produit est identifié par une espèce commerciale, un état, une 160 * qualité, présentation et catégorie commerciale. 161 * </p> 162 * <p> 163 * </p> 164 * <p> 165 * <u>Si le produit est un "produit vendu" :</u> 166 * </p> 167 * <p> 168 * On pourra allors utiliser SortingMeasurement pour stocker des données 169 * économiques, comme par exemple : 170 * </p> 171 * <p> 172 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 173 * par exemple : prix au kilo, et prix total en euros. 174 * </p> 175 * <p> 176 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 177 * collective controlée par un organisme tier. (cf SACROIS) 178 * </p> 179 * <p> 180 * - Destination commerciale : consommation humaine, consommation animale, 181 * etc . 182 * </p> 183 * </body> 184 * </html> 185 * @return this.produces Collection<Produce> 186 */ 187 public Collection<Produce> getProduces() 188 { 189 return this.produces; 190 } 191 192 /** 193 * <html> 194 * <head> 195 * </head> 196 * <body> 197 * <p> 198 * Un produit est identifié par une espèce commerciale, un état, une 199 * qualité, présentation et catégorie commerciale. 200 * </p> 201 * <p> 202 * </p> 203 * <p> 204 * <u>Si le produit est un "produit vendu" :</u> 205 * </p> 206 * <p> 207 * On pourra allors utiliser SortingMeasurement pour stocker des données 208 * économiques, comme par exemple : 209 * </p> 210 * <p> 211 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 212 * par exemple : prix au kilo, et prix total en euros. 213 * </p> 214 * <p> 215 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 216 * collective controlée par un organisme tier. (cf SACROIS) 217 * </p> 218 * <p> 219 * - Destination commerciale : consommation humaine, consommation animale, 220 * etc . 221 * </p> 222 * </body> 223 * </html> 224 * @param producesIn Collection<Produce> 225 */ 226 public void setProduces(Collection<Produce> producesIn) 227 { 228 this.produces = producesIn; 229 } 230 231 /** 232 * <html> 233 * <head> 234 * </head> 235 * <body> 236 * <p> 237 * Un produit est identifié par une espèce commerciale, un état, une 238 * qualité, présentation et catégorie commerciale. 239 * </p> 240 * <p> 241 * </p> 242 * <p> 243 * <u>Si le produit est un "produit vendu" :</u> 244 * </p> 245 * <p> 246 * On pourra allors utiliser SortingMeasurement pour stocker des données 247 * économiques, comme par exemple : 248 * </p> 249 * <p> 250 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 251 * par exemple : prix au kilo, et prix total en euros. 252 * </p> 253 * <p> 254 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 255 * collective controlée par un organisme tier. (cf SACROIS) 256 * </p> 257 * <p> 258 * - Destination commerciale : consommation humaine, consommation animale, 259 * etc . 260 * </p> 261 * </body> 262 * </html> 263 * @param elementToAdd Produce 264 * @return <tt>true</tt> if this collection changed as a result of the 265 * call 266 */ 267 public boolean addProduces(Produce elementToAdd) 268 { 269 return this.produces.add(elementToAdd); 270 } 271 272 /** 273 * <html> 274 * <head> 275 * </head> 276 * <body> 277 * <p> 278 * Un produit est identifié par une espèce commerciale, un état, une 279 * qualité, présentation et catégorie commerciale. 280 * </p> 281 * <p> 282 * </p> 283 * <p> 284 * <u>Si le produit est un "produit vendu" :</u> 285 * </p> 286 * <p> 287 * On pourra allors utiliser SortingMeasurement pour stocker des données 288 * économiques, comme par exemple : 289 * </p> 290 * <p> 291 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 292 * par exemple : prix au kilo, et prix total en euros. 293 * </p> 294 * <p> 295 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 296 * collective controlée par un organisme tier. (cf SACROIS) 297 * </p> 298 * <p> 299 * - Destination commerciale : consommation humaine, consommation animale, 300 * etc . 301 * </p> 302 * </body> 303 * </html> 304 * @param elementToRemove Produce 305 * @return <tt>true</tt> if this collection changed as a result of the 306 * call 307 */ 308 public boolean removeProduces(Produce elementToRemove) 309 { 310 return this.produces.remove(elementToRemove); 311 } 312 313 private CatchBatch catchBatch; 314 315 /** 316 * Capture réalisée au cours d'une opération, et sur laquelle un échantillonnage est réalisé. 317 * La capture porte donc l'arbre d''échantillonnage. 318 * @return this.catchBatch CatchBatch 319 */ 320 public CatchBatch getCatchBatch() 321 { 322 return this.catchBatch; 323 } 324 325 /** 326 * Capture réalisée au cours d'une opération, et sur laquelle un échantillonnage est réalisé. 327 * La capture porte donc l'arbre d''échantillonnage. 328 * @param catchBatchIn CatchBatch 329 */ 330 public void setCatchBatch(CatchBatch catchBatchIn) 331 { 332 this.catchBatch = catchBatchIn; 333 } 334 335 private Collection<Sample> samples = new HashSet<Sample>(); 336 337 /** 338 * Un prélèvement représente un (et un seul) support, prélevé au cours d'une opération de peche, 339 * d'un 340 * échantillonnage au débarquement ou d'une vente. Il s'agit de la partie qui est recueillie 341 * pour 342 * analyse ou dénombrement. 343 * Un prélèvement est rattaché à une opération de peche ou un groupe d'opérations, un 344 * débarquement ou à 345 * une vente. Il peut être en plus rattaché à un des lots échantillonnés (le lot de provenance). 346 * Dans le cas des marées observées en mer, un prlèvement correspond à un individu, dont le 347 * support 348 * est, par exemple : 349 * - crustacé (crevette...) 350 * - poisson (merlu, sardine...) 351 * - gastéropode (bigorneau, littorine...) 352 * - echinoderme (oursin...) 353 * - etc. 354 * Le nombre d'individu, généralement égal à 1, permet de constituer des prélèvement de 355 * plusieurs 356 * individu (dès lors qu'il sont ne meme anture). Chaque résultat de mesure (SampleMeasurement) 357 * pourra 358 * identifié l'individu concerné par la mesure, par une numéro din'dividu. 359 * Un mnémonique, représentant généralement l'étiquette collée sur le sachet contenant le 360 * prélèvement, 361 * permet d"identifier le prélèvement de manière simple, notamment en laboratoire pour la saisie 362 * des 363 * lectures d'age, etc.. 364 * Par exemple de prélèvement : 365 * - un poisson, d'une espèce donnée, sur lequel est prélevé un otholithe, et/ou des écailes 366 * afin de 367 * réaliser une lecture d'age. 368 * - un cétacé, issu d'un lot, sur lesquels doit être effectué des analyses d'age, de taille, 369 * - etc. 370 * @return this.samples Collection<Sample> 371 */ 372 public Collection<Sample> getSamples() 373 { 374 return this.samples; 375 } 376 377 /** 378 * Un prélèvement représente un (et un seul) support, prélevé au cours d'une opération de peche, 379 * d'un 380 * échantillonnage au débarquement ou d'une vente. Il s'agit de la partie qui est recueillie 381 * pour 382 * analyse ou dénombrement. 383 * Un prélèvement est rattaché à une opération de peche ou un groupe d'opérations, un 384 * débarquement ou à 385 * une vente. Il peut être en plus rattaché à un des lots échantillonnés (le lot de provenance). 386 * Dans le cas des marées observées en mer, un prlèvement correspond à un individu, dont le 387 * support 388 * est, par exemple : 389 * - crustacé (crevette...) 390 * - poisson (merlu, sardine...) 391 * - gastéropode (bigorneau, littorine...) 392 * - echinoderme (oursin...) 393 * - etc. 394 * Le nombre d'individu, généralement égal à 1, permet de constituer des prélèvement de 395 * plusieurs 396 * individu (dès lors qu'il sont ne meme anture). Chaque résultat de mesure (SampleMeasurement) 397 * pourra 398 * identifié l'individu concerné par la mesure, par une numéro din'dividu. 399 * Un mnémonique, représentant généralement l'étiquette collée sur le sachet contenant le 400 * prélèvement, 401 * permet d"identifier le prélèvement de manière simple, notamment en laboratoire pour la saisie 402 * des 403 * lectures d'age, etc.. 404 * Par exemple de prélèvement : 405 * - un poisson, d'une espèce donnée, sur lequel est prélevé un otholithe, et/ou des écailes 406 * afin de 407 * réaliser une lecture d'age. 408 * - un cétacé, issu d'un lot, sur lesquels doit être effectué des analyses d'age, de taille, 409 * - etc. 410 * @param samplesIn Collection<Sample> 411 */ 412 public void setSamples(Collection<Sample> samplesIn) 413 { 414 this.samples = samplesIn; 415 } 416 417 /** 418 * Un prélèvement représente un (et un seul) support, prélevé au cours d'une opération de peche, 419 * d'un 420 * échantillonnage au débarquement ou d'une vente. Il s'agit de la partie qui est recueillie 421 * pour 422 * analyse ou dénombrement. 423 * Un prélèvement est rattaché à une opération de peche ou un groupe d'opérations, un 424 * débarquement ou à 425 * une vente. Il peut être en plus rattaché à un des lots échantillonnés (le lot de provenance). 426 * Dans le cas des marées observées en mer, un prlèvement correspond à un individu, dont le 427 * support 428 * est, par exemple : 429 * - crustacé (crevette...) 430 * - poisson (merlu, sardine...) 431 * - gastéropode (bigorneau, littorine...) 432 * - echinoderme (oursin...) 433 * - etc. 434 * Le nombre d'individu, généralement égal à 1, permet de constituer des prélèvement de 435 * plusieurs 436 * individu (dès lors qu'il sont ne meme anture). Chaque résultat de mesure (SampleMeasurement) 437 * pourra 438 * identifié l'individu concerné par la mesure, par une numéro din'dividu. 439 * Un mnémonique, représentant généralement l'étiquette collée sur le sachet contenant le 440 * prélèvement, 441 * permet d"identifier le prélèvement de manière simple, notamment en laboratoire pour la saisie 442 * des 443 * lectures d'age, etc.. 444 * Par exemple de prélèvement : 445 * - un poisson, d'une espèce donnée, sur lequel est prélevé un otholithe, et/ou des écailes 446 * afin de 447 * réaliser une lecture d'age. 448 * - un cétacé, issu d'un lot, sur lesquels doit être effectué des analyses d'age, de taille, 449 * - etc. 450 * @param elementToAdd Sample 451 * @return <tt>true</tt> if this collection changed as a result of the 452 * call 453 */ 454 public boolean addSamples(Sample elementToAdd) 455 { 456 return this.samples.add(elementToAdd); 457 } 458 459 /** 460 * Un prélèvement représente un (et un seul) support, prélevé au cours d'une opération de peche, 461 * d'un 462 * échantillonnage au débarquement ou d'une vente. Il s'agit de la partie qui est recueillie 463 * pour 464 * analyse ou dénombrement. 465 * Un prélèvement est rattaché à une opération de peche ou un groupe d'opérations, un 466 * débarquement ou à 467 * une vente. Il peut être en plus rattaché à un des lots échantillonnés (le lot de provenance). 468 * Dans le cas des marées observées en mer, un prlèvement correspond à un individu, dont le 469 * support 470 * est, par exemple : 471 * - crustacé (crevette...) 472 * - poisson (merlu, sardine...) 473 * - gastéropode (bigorneau, littorine...) 474 * - echinoderme (oursin...) 475 * - etc. 476 * Le nombre d'individu, généralement égal à 1, permet de constituer des prélèvement de 477 * plusieurs 478 * individu (dès lors qu'il sont ne meme anture). Chaque résultat de mesure (SampleMeasurement) 479 * pourra 480 * identifié l'individu concerné par la mesure, par une numéro din'dividu. 481 * Un mnémonique, représentant généralement l'étiquette collée sur le sachet contenant le 482 * prélèvement, 483 * permet d"identifier le prélèvement de manière simple, notamment en laboratoire pour la saisie 484 * des 485 * lectures d'age, etc.. 486 * Par exemple de prélèvement : 487 * - un poisson, d'une espèce donnée, sur lequel est prélevé un otholithe, et/ou des écailes 488 * afin de 489 * réaliser une lecture d'age. 490 * - un cétacé, issu d'un lot, sur lesquels doit être effectué des analyses d'age, de taille, 491 * - etc. 492 * @param elementToRemove Sample 493 * @return <tt>true</tt> if this collection changed as a result of the 494 * call 495 */ 496 public boolean removeSamples(Sample elementToRemove) 497 { 498 return this.samples.remove(elementToRemove); 499 } 500 501 /** 502 * This entity does not have any identifiers 503 * but since it extends the <code>OperationImpl</code> class 504 * it will simply delegate the call up there. 505 * 506 * @see fr.ifremer.adagio.core.dao.data.operation.Operation#equals(Object) 507 */ 508 @Override 509 public boolean equals(Object object) 510 { 511 return super.equals(object); 512 } 513 514 /** 515 * This entity does not have any identifiers 516 * but since it extends the <code>OperationImpl</code> class 517 * it will simply delegate the call up there. 518 * 519 * @see fr.ifremer.adagio.core.dao.data.operation.Operation#hashCode() 520 */ 521 @Override 522 public int hashCode() 523 { 524 return super.hashCode(); 525 } 526 527 /** 528 * Constructs new instances of {@link FishingOperation}. 529 */ 530 public static final class Factory 531 { 532 /** 533 * Constructs a new instance of {@link FishingOperation}. 534 * @return new FishingOperationImpl() 535 */ 536 public static FishingOperation newInstance() 537 { 538 return new FishingOperationImpl(); 539 } 540 541 /** 542 * Constructs a new instance of {@link FishingOperation}, taking all required and/or 543 * read-only properties as arguments, except for identifiers. 544 * @param qualityFlag QualityFlag 545 * @param vessel Vessel 546 * @return newInstance 547 */ 548 public static FishingOperation newInstance(QualityFlag qualityFlag, Vessel vessel) 549 { 550 final FishingOperation entity = new FishingOperationImpl(); 551 entity.setQualityFlag(qualityFlag); 552 entity.setVessel(vessel); 553 return entity; 554 } 555 556 /** 557 * Constructs a new instance of {@link FishingOperation}, taking all possible properties 558 * (except the identifier(s))as arguments. 559 * @param name String 560 * @param rankOrderOnPeriod Short 561 * @param startDateTime Date 562 * @param endDateTime Date 563 * @param isMainOperation Boolean 564 * @param position LineString 565 * @param comments String 566 * @param controlDate Date 567 * @param validationDate Date 568 * @param qualificationDate Date 569 * @param qualificationComments String 570 * @param vesselPersonFeatures Collection<VesselPersonFeatures> 571 * @param qualityFlag QualityFlag 572 * @param vessel Vessel 573 * @param operationVesselAssociations Collection<OperationVesselAssociation> 574 * @param gearUseFeatures Collection<GearUseFeatures> 575 * @param vesselUseFeatures Collection<VesselUseFeatures> 576 * @param gearPhysicalFeatures GearPhysicalFeatures 577 * @param vesselPositionVMSs Collection<VesselPositionVMS> 578 * @param vesselPositions Collection<VesselPosition> 579 * @param fishingTrip FishingTrip 580 * @param fishingStartDateTime Date 581 * @param fishingEndDateTime Date 582 * @param hasCatch Boolean 583 * @param produces Collection<Produce> 584 * @param catchBatch CatchBatch 585 * @param samples Collection<Sample> 586 * @return newInstance FishingOperation 587 */ 588 public static FishingOperation 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, Date fishingStartDateTime, Date fishingEndDateTime, Boolean hasCatch, Collection<Produce> produces, CatchBatch catchBatch, Collection<Sample> samples) 589 { 590 final FishingOperation entity = new FishingOperationImpl(); 591 entity.setName(name); 592 entity.setRankOrderOnPeriod(rankOrderOnPeriod); 593 entity.setStartDateTime(startDateTime); 594 entity.setEndDateTime(endDateTime); 595 entity.setIsMainOperation(isMainOperation); 596 entity.setPosition(position); 597 entity.setComments(comments); 598 entity.setControlDate(controlDate); 599 entity.setValidationDate(validationDate); 600 entity.setQualificationDate(qualificationDate); 601 entity.setQualificationComments(qualificationComments); 602 entity.setVesselPersonFeatures(vesselPersonFeatures); 603 entity.setQualityFlag(qualityFlag); 604 entity.setVessel(vessel); 605 entity.setOperationVesselAssociations(operationVesselAssociations); 606 entity.setGearUseFeatures(gearUseFeatures); 607 entity.setVesselUseFeatures(vesselUseFeatures); 608 entity.setGearPhysicalFeatures(gearPhysicalFeatures); 609 entity.setVesselPositionVMSs(vesselPositionVMSs); 610 entity.setVesselPositions(vesselPositions); 611 entity.setFishingTrip(fishingTrip); 612 entity.setFishingStartDateTime(fishingStartDateTime); 613 entity.setFishingEndDateTime(fishingEndDateTime); 614 entity.setHasCatch(hasCatch); 615 entity.setProduces(produces); 616 entity.setCatchBatch(catchBatch); 617 entity.setSamples(samples); 618 return entity; 619 } 620 } 621 622 /** 623 * @see Comparable#compareTo 624 */ 625 public int compareTo(FishingOperation o) 626 { 627 int cmp = 0; 628 if (this.getId() != null) 629 { 630 cmp = this.getId().compareTo(o.getId()); 631 } 632 else 633 { 634 if (this.getFishingStartDateTime() != null) 635 { 636 cmp = (cmp != 0 ? cmp : this.getFishingStartDateTime().compareTo(o.getFishingStartDateTime())); 637 } 638 if (this.getFishingEndDateTime() != null) 639 { 640 cmp = (cmp != 0 ? cmp : this.getFishingEndDateTime().compareTo(o.getFishingEndDateTime())); 641 } 642 if (this.getHasCatch() != null) 643 { 644 cmp = (cmp != 0 ? cmp : this.getHasCatch().compareTo(o.getHasCatch())); 645 } 646 } 647 return cmp; 648 } 649// HibernateEntity.vsl merge-point 650// FishingOperation.java merge-point 651}