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.sale; 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.data.measure.SaleMeasurement; 032import fr.ifremer.adagio.core.dao.data.produce.Produce; 033import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.ObservedFishingTrip; 034import fr.ifremer.adagio.core.dao.data.survey.landing.ObservedLanding; 035import fr.ifremer.adagio.core.dao.referential.SaleType; 036import fr.ifremer.adagio.core.dao.referential.location.Location; 037import java.io.Serializable; 038import java.util.Collection; 039import java.util.HashSet; 040 041/** 042 * Mode de vente escompté (d’une marée observée ou d'un débarquement observé). 043 */ 044// HibernateEntity.vsl annotations merge-point 045public abstract class ExpectedSale 046 implements Serializable, Comparable<ExpectedSale> 047{ 048 /** 049 * The serial version UID of this class. Needed for serialization. 050 */ 051 private static final long serialVersionUID = -8147956668148626076L; 052 053 // Generate 1 attributes 054 private Integer id; 055 056 /** 057 * Idenfiant interne. Généré par le système. 058 * @return this.id Integer 059 */ 060 public Integer getId() 061 { 062 return this.id; 063 } 064 065 /** 066 * Idenfiant interne. Généré par le système. 067 * @param idIn Integer 068 */ 069 public void setId(Integer idIn) 070 { 071 this.id = idIn; 072 } 073 074 // Generate 6 associations 075 private Location saleLocation; 076 077 /** 078 * Lieu escompté de la vente. 079 * @return this.saleLocation Location 080 */ 081 public Location getSaleLocation() 082 { 083 return this.saleLocation; 084 } 085 086 /** 087 * Lieu escompté de la vente. 088 * @param saleLocationIn Location 089 */ 090 public void setSaleLocation(Location saleLocationIn) 091 { 092 this.saleLocation = saleLocationIn; 093 } 094 095 private SaleType saleType; 096 097 /** 098 * <html> 099 * <head> 100 * <style> 101 * p {padding:0px; margin:0px;} 102 * </style> 103 * </head> 104 * <body> 105 * <p> 106 * Type de vente. 107 * </p> 108 * <p> 109 *   110 * </p> 111 * <p> 112 * Attention, mélange plusieurs aspects (comme le type de transaction, etc.). 113 * </p> 114 * <p> 115 * Utiliser plutôt TakeOverType, puis détailler les autres composantes directement dans Produce 116 * ou 117 * ProduceSortingMeasurement 118 * </p> 119 * <p> 120 *   121 * </p> 122 * <p> 123 * @deprecated Use instead TakeOverType 124 * </p> 125 * </body> 126 * </html> 127 * @return this.saleType SaleType 128 */ 129 public SaleType getSaleType() 130 { 131 return this.saleType; 132 } 133 134 /** 135 * <html> 136 * <head> 137 * <style> 138 * p {padding:0px; margin:0px;} 139 * </style> 140 * </head> 141 * <body> 142 * <p> 143 * Type de vente. 144 * </p> 145 * <p> 146 *   147 * </p> 148 * <p> 149 * Attention, mélange plusieurs aspects (comme le type de transaction, etc.). 150 * </p> 151 * <p> 152 * Utiliser plutôt TakeOverType, puis détailler les autres composantes directement dans Produce 153 * ou 154 * ProduceSortingMeasurement 155 * </p> 156 * <p> 157 *   158 * </p> 159 * <p> 160 * @deprecated Use instead TakeOverType 161 * </p> 162 * </body> 163 * </html> 164 * @param saleTypeIn SaleType 165 */ 166 public void setSaleType(SaleType saleTypeIn) 167 { 168 this.saleType = saleTypeIn; 169 } 170 171 private Collection<SaleMeasurement> saleMeasurements = new HashSet<SaleMeasurement>(); 172 173 /** 174 * Caractéristiques sur la vente (données economiques, ou caractéristiques de l'observation, 175 * etc.). 176 * @return this.saleMeasurements Collection<SaleMeasurement> 177 */ 178 public Collection<SaleMeasurement> getSaleMeasurements() 179 { 180 return this.saleMeasurements; 181 } 182 183 /** 184 * Caractéristiques sur la vente (données economiques, ou caractéristiques de l'observation, 185 * etc.). 186 * @param saleMeasurementsIn Collection<SaleMeasurement> 187 */ 188 public void setSaleMeasurements(Collection<SaleMeasurement> saleMeasurementsIn) 189 { 190 this.saleMeasurements = saleMeasurementsIn; 191 } 192 193 /** 194 * Caractéristiques sur la vente (données economiques, ou caractéristiques de l'observation, 195 * etc.). 196 * @param elementToAdd SaleMeasurement 197 * @return <tt>true</tt> if this collection changed as a result of the 198 * call 199 */ 200 public boolean addSaleMeasurements(SaleMeasurement elementToAdd) 201 { 202 return this.saleMeasurements.add(elementToAdd); 203 } 204 205 /** 206 * Caractéristiques sur la vente (données economiques, ou caractéristiques de l'observation, 207 * etc.). 208 * @param elementToRemove SaleMeasurement 209 * @return <tt>true</tt> if this collection changed as a result of the 210 * call 211 */ 212 public boolean removeSaleMeasurements(SaleMeasurement elementToRemove) 213 { 214 return this.saleMeasurements.remove(elementToRemove); 215 } 216 217 private Collection<Produce> produces = new HashSet<Produce>(); 218 219 /** 220 * <html> 221 * <head> 222 * </head> 223 * <body> 224 * <p> 225 * Un produit est identifié par une espèce commerciale, un état, une 226 * qualité, présentation et catégorie commerciale. 227 * </p> 228 * <p> 229 * </p> 230 * <p> 231 * <u>Si le produit est un "produit vendu" :</u> 232 * </p> 233 * <p> 234 * On pourra allors utiliser SortingMeasurement pour stocker des données 235 * économiques, comme par exemple : 236 * </p> 237 * <p> 238 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 239 * par exemple : prix au kilo, et prix total en euros. 240 * </p> 241 * <p> 242 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 243 * collective controlée par un organisme tier. (cf SACROIS) 244 * </p> 245 * <p> 246 * - Destination commerciale : consommation humaine, consommation animale, 247 * etc . 248 * </p> 249 * </body> 250 * </html> 251 * @return this.produces Collection<Produce> 252 */ 253 public Collection<Produce> getProduces() 254 { 255 return this.produces; 256 } 257 258 /** 259 * <html> 260 * <head> 261 * </head> 262 * <body> 263 * <p> 264 * Un produit est identifié par une espèce commerciale, un état, une 265 * qualité, présentation et catégorie commerciale. 266 * </p> 267 * <p> 268 * </p> 269 * <p> 270 * <u>Si le produit est un "produit vendu" :</u> 271 * </p> 272 * <p> 273 * On pourra allors utiliser SortingMeasurement pour stocker des données 274 * économiques, comme par exemple : 275 * </p> 276 * <p> 277 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 278 * par exemple : prix au kilo, et prix total en euros. 279 * </p> 280 * <p> 281 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 282 * collective controlée par un organisme tier. (cf SACROIS) 283 * </p> 284 * <p> 285 * - Destination commerciale : consommation humaine, consommation animale, 286 * etc . 287 * </p> 288 * </body> 289 * </html> 290 * @param producesIn Collection<Produce> 291 */ 292 public void setProduces(Collection<Produce> producesIn) 293 { 294 this.produces = producesIn; 295 } 296 297 /** 298 * <html> 299 * <head> 300 * </head> 301 * <body> 302 * <p> 303 * Un produit est identifié par une espèce commerciale, un état, une 304 * qualité, présentation et catégorie commerciale. 305 * </p> 306 * <p> 307 * </p> 308 * <p> 309 * <u>Si le produit est un "produit vendu" :</u> 310 * </p> 311 * <p> 312 * On pourra allors utiliser SortingMeasurement pour stocker des données 313 * économiques, comme par exemple : 314 * </p> 315 * <p> 316 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 317 * par exemple : prix au kilo, et prix total en euros. 318 * </p> 319 * <p> 320 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 321 * collective controlée par un organisme tier. (cf SACROIS) 322 * </p> 323 * <p> 324 * - Destination commerciale : consommation humaine, consommation animale, 325 * etc . 326 * </p> 327 * </body> 328 * </html> 329 * @param elementToAdd Produce 330 * @return <tt>true</tt> if this collection changed as a result of the 331 * call 332 */ 333 public boolean addProduces(Produce elementToAdd) 334 { 335 return this.produces.add(elementToAdd); 336 } 337 338 /** 339 * <html> 340 * <head> 341 * </head> 342 * <body> 343 * <p> 344 * Un produit est identifié par une espèce commerciale, un état, une 345 * qualité, présentation et catégorie commerciale. 346 * </p> 347 * <p> 348 * </p> 349 * <p> 350 * <u>Si le produit est un "produit vendu" :</u> 351 * </p> 352 * <p> 353 * On pourra allors utiliser SortingMeasurement pour stocker des données 354 * économiques, comme par exemple : 355 * </p> 356 * <p> 357 * - Le prix du produit. Il peut y avoir plusieurds prix (plusieurs PSFMs), 358 * par exemple : prix au kilo, et prix total en euros. 359 * </p> 360 * <p> 361 * - Valorisation de la commercialisation : Label rouge, Eco Label, marque 362 * collective controlée par un organisme tier. (cf SACROIS) 363 * </p> 364 * <p> 365 * - Destination commerciale : consommation humaine, consommation animale, 366 * etc . 367 * </p> 368 * </body> 369 * </html> 370 * @param elementToRemove Produce 371 * @return <tt>true</tt> if this collection changed as a result of the 372 * call 373 */ 374 public boolean removeProduces(Produce elementToRemove) 375 { 376 return this.produces.remove(elementToRemove); 377 } 378 379 private ObservedLanding observedLanding; 380 381 /** 382 * 383 * @return this.observedLanding ObservedLanding 384 */ 385 public ObservedLanding getObservedLanding() 386 { 387 return this.observedLanding; 388 } 389 390 /** 391 * 392 * @param observedLandingIn ObservedLanding 393 */ 394 public void setObservedLanding(ObservedLanding observedLandingIn) 395 { 396 this.observedLanding = observedLandingIn; 397 } 398 399 private ObservedFishingTrip observedFishingTrip; 400 401 /** 402 * Marée observée au cours de laquelle ont été recueillies les données de ventes escomptées. 403 * @return this.observedFishingTrip ObservedFishingTrip 404 */ 405 public ObservedFishingTrip getObservedFishingTrip() 406 { 407 return this.observedFishingTrip; 408 } 409 410 /** 411 * Marée observée au cours de laquelle ont été recueillies les données de ventes escomptées. 412 * @param observedFishingTripIn ObservedFishingTrip 413 */ 414 public void setObservedFishingTrip(ObservedFishingTrip observedFishingTripIn) 415 { 416 this.observedFishingTrip = observedFishingTripIn; 417 } 418 419 /** 420 * Returns <code>true</code> if the argument is an ExpectedSale instance and all identifiers for this entity 421 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 422 */ 423 @Override 424 public boolean equals(Object object) 425 { 426 if (this == object) 427 { 428 return true; 429 } 430 if (!(object instanceof ExpectedSale)) 431 { 432 return false; 433 } 434 final ExpectedSale that = (ExpectedSale)object; 435 if (this.id == null || that.getId() == null || !this.id.equals(that.getId())) 436 { 437 return false; 438 } 439 return true; 440 } 441 442 /** 443 * Returns a hash code based on this entity's identifiers. 444 */ 445 @Override 446 public int hashCode() 447 { 448 int hashCode = 0; 449 hashCode = 29 * hashCode + (this.id == null ? 0 : this.id.hashCode()); 450 451 return hashCode; 452 } 453 454 /** 455 * Constructs new instances of {@link ExpectedSale}. 456 */ 457 public static final class Factory 458 { 459 /** 460 * Constructs a new instance of {@link ExpectedSale}. 461 * @return new ExpectedSaleImpl() 462 */ 463 public static ExpectedSale newInstance() 464 { 465 return new ExpectedSaleImpl(); 466 } 467 468 /** 469 * Constructs a new instance of {@link ExpectedSale}, taking all required and/or 470 * read-only properties as arguments, except for identifiers. 471 * @param saleLocation Location 472 * @param saleType SaleType 473 * @return newInstance 474 */ 475 public static ExpectedSale newInstance(Location saleLocation, SaleType saleType) 476 { 477 final ExpectedSale entity = new ExpectedSaleImpl(); 478 entity.setSaleLocation(saleLocation); 479 entity.setSaleType(saleType); 480 return entity; 481 } 482 483 /** 484 * Constructs a new instance of {@link ExpectedSale}, taking all possible properties 485 * (except the identifier(s))as arguments. 486 * @param saleLocation Location 487 * @param saleType SaleType 488 * @param saleMeasurements Collection<SaleMeasurement> 489 * @param produces Collection<Produce> 490 * @param observedLanding ObservedLanding 491 * @param observedFishingTrip ObservedFishingTrip 492 * @return newInstance ExpectedSale 493 */ 494 public static ExpectedSale newInstance(Location saleLocation, SaleType saleType, Collection<SaleMeasurement> saleMeasurements, Collection<Produce> produces, ObservedLanding observedLanding, ObservedFishingTrip observedFishingTrip) 495 { 496 final ExpectedSale entity = new ExpectedSaleImpl(); 497 entity.setSaleLocation(saleLocation); 498 entity.setSaleType(saleType); 499 entity.setSaleMeasurements(saleMeasurements); 500 entity.setProduces(produces); 501 entity.setObservedLanding(observedLanding); 502 entity.setObservedFishingTrip(observedFishingTrip); 503 return entity; 504 } 505 } 506 507 /** 508 * @see Comparable#compareTo 509 */ 510 public int compareTo(ExpectedSale o) 511 { 512 int cmp = 0; 513 if (this.getId() != null) 514 { 515 cmp = this.getId().compareTo(o.getId()); 516 } 517 518 return cmp; 519 } 520// HibernateEntity.vsl merge-point 521// ExpectedSale.java merge-point 522}