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.referential.pmfm; 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.referential.Status; 032import java.io.Serializable; 033import java.sql.Timestamp; 034import java.util.Collection; 035import java.util.Date; 036import java.util.HashSet; 037 038/** 039 * Le support est un composant du milieu sur lequel porte l'investigation. Les supports sont, par 040 * exemple : 041 * - un engin, 042 * - la mer (ou autre environnement), 043 * - bivalve (moule, huître, coque...) 044 * - crustacé (crevette...) 045 * - poisson (merlu, sardine...) 046 * - gastéropode (bigorneau, littorine...) 047 * - echinoderme (oursin...) 048 * - masse d'eau, eau brute 049 * - eau filtrée 050 * - ... 051 * Le support ne correspond pas au support réellement analysé. En effet, il peut s'agir d'une 052 * analyse sur une fraction du support (par exemple, pour le poisson, l'otolite,… ou pour un engin, 053 * le bras). 054 * Nombre de lignes : 20 055 */ 056// HibernateEntity.vsl annotations merge-point 057public abstract class Matrix 058 implements Serializable, Comparable<Matrix> 059{ 060 /** 061 * The serial version UID of this class. Needed for serialization. 062 */ 063 private static final long serialVersionUID = -2762738603095957665L; 064 065 // Generate 6 attributes 066 private Integer id; 067 068 /** 069 * Identifiant numérique unique du support. Généré par le système. 070 * @return this.id Integer 071 */ 072 public Integer getId() 073 { 074 return this.id; 075 } 076 077 /** 078 * Identifiant numérique unique du support. Généré par le système. 079 * @param idIn Integer 080 */ 081 public void setId(Integer idIn) 082 { 083 this.id = idIn; 084 } 085 086 private String name; 087 088 /** 089 * Description courte du support. 090 * @return this.name String 091 */ 092 public String getName() 093 { 094 return this.name; 095 } 096 097 /** 098 * Description courte du support. 099 * @param nameIn String 100 */ 101 public void setName(String nameIn) 102 { 103 this.name = nameIn; 104 } 105 106 private String description; 107 108 /** 109 * Description longue du support. 110 * @return this.description String 111 */ 112 public String getDescription() 113 { 114 return this.description; 115 } 116 117 /** 118 * Description longue du support. 119 * @param descriptionIn String 120 */ 121 public void setDescription(String descriptionIn) 122 { 123 this.description = descriptionIn; 124 } 125 126 private Date creationDate; 127 128 /** 129 * Date de création système du support. Cette date est renseignée automatiquement. 130 * @return this.creationDate Date 131 */ 132 public Date getCreationDate() 133 { 134 return this.creationDate; 135 } 136 137 /** 138 * Date de création système du support. Cette date est renseignée automatiquement. 139 * @param creationDateIn Date 140 */ 141 public void setCreationDate(Date creationDateIn) 142 { 143 this.creationDate = creationDateIn; 144 } 145 146 private String comments; 147 148 /** 149 * 150 * @return this.comments String 151 */ 152 public String getComments() 153 { 154 return this.comments; 155 } 156 157 /** 158 * 159 * @param commentsIn String 160 */ 161 public void setComments(String commentsIn) 162 { 163 this.comments = commentsIn; 164 } 165 166 private Timestamp updateDate; 167 168 /** 169 * Date de mise à jour système du support. Cette date est renseignée automatiquement. 170 * @return this.updateDate Timestamp 171 */ 172 public Timestamp getUpdateDate() 173 { 174 return this.updateDate; 175 } 176 177 /** 178 * Date de mise à jour système du support. Cette date est renseignée automatiquement. 179 * @param updateDateIn Timestamp 180 */ 181 public void setUpdateDate(Timestamp updateDateIn) 182 { 183 this.updateDate = updateDateIn; 184 } 185 186 // Generate 4 associations 187 private Collection<Fraction> fractions = new HashSet<Fraction>(); 188 189 /** 190 * Une fraction analysée est un composant du support sur lequel porte l'analyse. 191 * Les fractions analysées sont généralement des fractions "organiques", au sens d'une 192 * classification 193 * par partie d'un même organisme, 194 * ex : foie, écaille, reins, dents, otolithe... 195 * Elles peuvent aussi être un sous ensemble quelconque du support. Par exemple, dans le cas des 196 * engins 197 * : le bras, … 198 * Les fractions dites "systématiques", au sens d'une classification systématique (ex : poisson 199 * : 200 * Cyprinidae / Cyprinus / Cyprinus carpio...) ne sont pas considérées comme des fractions au 201 * sens de 202 * l'entité, mais comme une précision apportée sur l'individu. Représentées par les entités 203 * "taxon" et 204 * "groupe de taxon", elles ne font pas partie de la liste des fractions analysées. 205 * Etant une liste de référence, une procédure stricte pour la création de nouvelles fractions 206 * analysées pourra être mise en place (On pourra s'inspirer des procédures utilisées dans 207 * Quadrige2, 208 * qui utilisent le référentiel national du SANDRE). 209 * Nombre de lignes : 10 210 * @return this.fractions Collection<Fraction> 211 */ 212 public Collection<Fraction> getFractions() 213 { 214 return this.fractions; 215 } 216 217 /** 218 * Une fraction analysée est un composant du support sur lequel porte l'analyse. 219 * Les fractions analysées sont généralement des fractions "organiques", au sens d'une 220 * classification 221 * par partie d'un même organisme, 222 * ex : foie, écaille, reins, dents, otolithe... 223 * Elles peuvent aussi être un sous ensemble quelconque du support. Par exemple, dans le cas des 224 * engins 225 * : le bras, … 226 * Les fractions dites "systématiques", au sens d'une classification systématique (ex : poisson 227 * : 228 * Cyprinidae / Cyprinus / Cyprinus carpio...) ne sont pas considérées comme des fractions au 229 * sens de 230 * l'entité, mais comme une précision apportée sur l'individu. Représentées par les entités 231 * "taxon" et 232 * "groupe de taxon", elles ne font pas partie de la liste des fractions analysées. 233 * Etant une liste de référence, une procédure stricte pour la création de nouvelles fractions 234 * analysées pourra être mise en place (On pourra s'inspirer des procédures utilisées dans 235 * Quadrige2, 236 * qui utilisent le référentiel national du SANDRE). 237 * Nombre de lignes : 10 238 * @param fractionsIn Collection<Fraction> 239 */ 240 public void setFractions(Collection<Fraction> fractionsIn) 241 { 242 this.fractions = fractionsIn; 243 } 244 245 /** 246 * Une fraction analysée est un composant du support sur lequel porte l'analyse. 247 * Les fractions analysées sont généralement des fractions "organiques", au sens d'une 248 * classification 249 * par partie d'un même organisme, 250 * ex : foie, écaille, reins, dents, otolithe... 251 * Elles peuvent aussi être un sous ensemble quelconque du support. Par exemple, dans le cas des 252 * engins 253 * : le bras, … 254 * Les fractions dites "systématiques", au sens d'une classification systématique (ex : poisson 255 * : 256 * Cyprinidae / Cyprinus / Cyprinus carpio...) ne sont pas considérées comme des fractions au 257 * sens de 258 * l'entité, mais comme une précision apportée sur l'individu. Représentées par les entités 259 * "taxon" et 260 * "groupe de taxon", elles ne font pas partie de la liste des fractions analysées. 261 * Etant une liste de référence, une procédure stricte pour la création de nouvelles fractions 262 * analysées pourra être mise en place (On pourra s'inspirer des procédures utilisées dans 263 * Quadrige2, 264 * qui utilisent le référentiel national du SANDRE). 265 * Nombre de lignes : 10 266 * @param elementToAdd Fraction 267 * @return <tt>true</tt> if this collection changed as a result of the 268 * call 269 */ 270 public boolean addFractions(Fraction elementToAdd) 271 { 272 return this.fractions.add(elementToAdd); 273 } 274 275 /** 276 * Une fraction analysée est un composant du support sur lequel porte l'analyse. 277 * Les fractions analysées sont généralement des fractions "organiques", au sens d'une 278 * classification 279 * par partie d'un même organisme, 280 * ex : foie, écaille, reins, dents, otolithe... 281 * Elles peuvent aussi être un sous ensemble quelconque du support. Par exemple, dans le cas des 282 * engins 283 * : le bras, … 284 * Les fractions dites "systématiques", au sens d'une classification systématique (ex : poisson 285 * : 286 * Cyprinidae / Cyprinus / Cyprinus carpio...) ne sont pas considérées comme des fractions au 287 * sens de 288 * l'entité, mais comme une précision apportée sur l'individu. Représentées par les entités 289 * "taxon" et 290 * "groupe de taxon", elles ne font pas partie de la liste des fractions analysées. 291 * Etant une liste de référence, une procédure stricte pour la création de nouvelles fractions 292 * analysées pourra être mise en place (On pourra s'inspirer des procédures utilisées dans 293 * Quadrige2, 294 * qui utilisent le référentiel national du SANDRE). 295 * Nombre de lignes : 10 296 * @param elementToRemove Fraction 297 * @return <tt>true</tt> if this collection changed as a result of the 298 * call 299 */ 300 public boolean removeFractions(Fraction elementToRemove) 301 { 302 return this.fractions.remove(elementToRemove); 303 } 304 305 private Status status; 306 307 /** 308 * Pour les données du référentiel, information permettant de déterminer si une donnée est 309 * valide, 310 * obsolète ou temporaire. 311 * - obsolète (=inactif) : '0' 312 * - valide (=actif) : '1' 313 * - temporaire : '2' 314 * - en cours de suppression : '3' 315 * - : '4' 316 * note : on a préfère ici 'valide' au terme 'actif' (utilisé dans Harmonie), pour ne pas 317 * confondre 318 * avec par exemple l'activité d'un navire sur un mois. 319 * @return this.status Status 320 */ 321 public Status getStatus() 322 { 323 return this.status; 324 } 325 326 /** 327 * Pour les données du référentiel, information permettant de déterminer si une donnée est 328 * valide, 329 * obsolète ou temporaire. 330 * - obsolète (=inactif) : '0' 331 * - valide (=actif) : '1' 332 * - temporaire : '2' 333 * - en cours de suppression : '3' 334 * - : '4' 335 * note : on a préfère ici 'valide' au terme 'actif' (utilisé dans Harmonie), pour ne pas 336 * confondre 337 * avec par exemple l'activité d'un navire sur un mois. 338 * @param statusIn Status 339 */ 340 public void setStatus(Status statusIn) 341 { 342 this.status = statusIn; 343 } 344 345 /** 346 * Returns <code>true</code> if the argument is an Matrix instance and all identifiers for this entity 347 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 348 */ 349 @Override 350 public boolean equals(Object object) 351 { 352 if (this == object) 353 { 354 return true; 355 } 356 if (!(object instanceof Matrix)) 357 { 358 return false; 359 } 360 final Matrix that = (Matrix)object; 361 if (this.id == null || that.getId() == null || !this.id.equals(that.getId())) 362 { 363 return false; 364 } 365 return true; 366 } 367 368 /** 369 * Returns a hash code based on this entity's identifiers. 370 */ 371 @Override 372 public int hashCode() 373 { 374 int hashCode = 0; 375 hashCode = 29 * hashCode + (this.id == null ? 0 : this.id.hashCode()); 376 377 return hashCode; 378 } 379 380 /** 381 * Constructs new instances of {@link Matrix}. 382 */ 383 public static final class Factory 384 { 385 /** 386 * Constructs a new instance of {@link Matrix}. 387 * @return new MatrixImpl() 388 */ 389 public static Matrix newInstance() 390 { 391 return new MatrixImpl(); 392 } 393 394 /** 395 * Constructs a new instance of {@link Matrix}, taking all required and/or 396 * read-only properties as arguments, except for identifiers. 397 * @param name String 398 * @param creationDate Date 399 * @param updateDate Timestamp 400 * @param fractions Collection<Fraction> 401 * @param status Status 402 * @return newInstance 403 */ 404 public static Matrix newInstance(String name, Date creationDate, Timestamp updateDate, Collection<Fraction> fractions, Status status) 405 { 406 final Matrix entity = new MatrixImpl(); 407 entity.setName(name); 408 entity.setCreationDate(creationDate); 409 entity.setUpdateDate(updateDate); 410 entity.setFractions(fractions); 411 entity.setStatus(status); 412 return entity; 413 } 414 415 /** 416 * Constructs a new instance of {@link Matrix}, taking all possible properties 417 * (except the identifier(s))as arguments. 418 * @param name String 419 * @param description String 420 * @param creationDate Date 421 * @param comments String 422 * @param updateDate Timestamp 423 * @param fractions Collection<Fraction> 424 * @param status Status 425 * @return newInstance Matrix 426 */ 427 public static Matrix newInstance(String name, String description, Date creationDate, String comments, Timestamp updateDate, Collection<Fraction> fractions, Status status) 428 { 429 final Matrix entity = new MatrixImpl(); 430 entity.setName(name); 431 entity.setDescription(description); 432 entity.setCreationDate(creationDate); 433 entity.setComments(comments); 434 entity.setUpdateDate(updateDate); 435 entity.setFractions(fractions); 436 entity.setStatus(status); 437 return entity; 438 } 439 } 440 441 /** 442 * @see Comparable#compareTo 443 */ 444 public int compareTo(Matrix o) 445 { 446 int cmp = 0; 447 if (this.getId() != null) 448 { 449 cmp = this.getId().compareTo(o.getId()); 450 } 451 else 452 { 453 if (this.getName() != null) 454 { 455 cmp = (cmp != 0 ? cmp : this.getName().compareTo(o.getName())); 456 } 457 if (this.getDescription() != null) 458 { 459 cmp = (cmp != 0 ? cmp : this.getDescription().compareTo(o.getDescription())); 460 } 461 if (this.getCreationDate() != null) 462 { 463 cmp = (cmp != 0 ? cmp : this.getCreationDate().compareTo(o.getCreationDate())); 464 } 465 if (this.getComments() != null) 466 { 467 cmp = (cmp != 0 ? cmp : this.getComments().compareTo(o.getComments())); 468 } 469 if (this.getUpdateDate() != null) 470 { 471 cmp = (cmp != 0 ? cmp : this.getUpdateDate().compareTo(o.getUpdateDate())); 472 } 473 } 474 return cmp; 475 } 476// HibernateEntity.vsl merge-point 477// Matrix.java merge-point 478}