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.measure; 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.user.Department; 032import fr.ifremer.adagio.core.dao.data.sample.Sample; 033import fr.ifremer.adagio.core.dao.referential.AnalysisInstrument; 034import fr.ifremer.adagio.core.dao.referential.NumericalPrecision; 035import fr.ifremer.adagio.core.dao.referential.PrecisionType; 036import fr.ifremer.adagio.core.dao.referential.QualityFlag; 037import fr.ifremer.adagio.core.dao.referential.pmfm.AggregationLevel; 038import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm; 039import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue; 040import java.util.Date; 041 042/** 043 * Valeur mesurée ou analysée sur un individu (résultats de mesures sur individu) appartenant à un 044 * prélèvement effectué lors d'un échantillonnage biologique, lors d'une marée, d'un vente ou d'un 045 * débarquement observé. Les observations sur le prélèvement sont souvent menées en laboratoire, à 046 * terre. 047 */ 048// HibernateEntity.vsl annotations merge-point 049public abstract class SampleMeasurement 050 extends MeasurementImpl 051{ 052 /** 053 * The serial version UID of this class. Needed for serialization. 054 */ 055 private static final long serialVersionUID = 4164573865635600759L; 056 057 // Generate 2 attributes 058 private Short individualNumber; 059 060 /** 061 * Numéro de l'individu sur lequel est effectué la mesure. 062 * (quand plusieurs individu ont été comptés, au niveau de l'échantillon) 063 * @return this.individualNumber Short 064 */ 065 public Short getIndividualNumber() 066 { 067 return this.individualNumber; 068 } 069 070 /** 071 * Numéro de l'individu sur lequel est effectué la mesure. 072 * (quand plusieurs individu ont été comptés, au niveau de l'échantillon) 073 * @param individualNumberIn Short 074 */ 075 public void setIndividualNumber(Short individualNumberIn) 076 { 077 this.individualNumber = individualNumberIn; 078 } 079 080 private Boolean isReferenceMeasurement = Boolean.valueOf(true); 081 082 /** 083 * Dans le cas de plusieurs résultat de mesure au sein d'un prélèvement sur un meme individu 084 * (identifié par le numéro d'individu), cela permet de distinguer la valeur de référence (celle 085 * qu'il faudra exploiter) tout en gardant les autres mesure. 086 * Exemple : 087 * - Pour la leture d'age, plusieurs déterminations d'age sont effectuées, mais une seule est 088 * conservée. 089 * @return this.isReferenceMeasurement Boolean 090 */ 091 public Boolean isIsReferenceMeasurement() 092 { 093 return this.isReferenceMeasurement; 094 } 095 096 /** 097 * Dans le cas de plusieurs résultat de mesure au sein d'un prélèvement sur un meme individu 098 * (identifié par le numéro d'individu), cela permet de distinguer la valeur de référence (celle 099 * qu'il faudra exploiter) tout en gardant les autres mesure. 100 * Exemple : 101 * - Pour la leture d'age, plusieurs déterminations d'age sont effectuées, mais une seule est 102 * conservée. 103 * @param isReferenceMeasurementIn Boolean 104 */ 105 public void setIsReferenceMeasurement(Boolean isReferenceMeasurementIn) 106 { 107 this.isReferenceMeasurement = isReferenceMeasurementIn; 108 } 109 110 // Generate 1 associations 111 private Sample sample; 112 113 /** 114 * Un prélèvement représente un (et un seul) support, prélevé au cours d'une opération de peche, 115 * d'un 116 * échantillonnage au débarquement ou d'une vente. Il s'agit de la partie qui est recueillie 117 * pour 118 * analyse ou dénombrement. 119 * Un prélèvement est rattaché à une opération de peche ou un groupe d'opérations, un 120 * débarquement ou à 121 * une vente. Il peut être en plus rattaché à un des lots échantillonnés (le lot de provenance). 122 * Dans le cas des marées observées en mer, un prlèvement correspond à un individu, dont le 123 * support 124 * est, par exemple : 125 * - crustacé (crevette...) 126 * - poisson (merlu, sardine...) 127 * - gastéropode (bigorneau, littorine...) 128 * - echinoderme (oursin...) 129 * - etc. 130 * Le nombre d'individu, généralement égal à 1, permet de constituer des prélèvement de 131 * plusieurs 132 * individu (dès lors qu'il sont ne meme anture). Chaque résultat de mesure (SampleMeasurement) 133 * pourra 134 * identifié l'individu concerné par la mesure, par une numéro din'dividu. 135 * Un mnémonique, représentant généralement l'étiquette collée sur le sachet contenant le 136 * prélèvement, 137 * permet d"identifier le prélèvement de manière simple, notamment en laboratoire pour la saisie 138 * des 139 * lectures d'age, etc.. 140 * Par exemple de prélèvement : 141 * - un poisson, d'une espèce donnée, sur lequel est prélevé un otholithe, et/ou des écailes 142 * afin de 143 * réaliser une lecture d'age. 144 * - un cétacé, issu d'un lot, sur lesquels doit être effectué des analyses d'age, de taille, 145 * - etc. 146 * @return this.sample Sample 147 */ 148 public Sample getSample() 149 { 150 return this.sample; 151 } 152 153 /** 154 * Un prélèvement représente un (et un seul) support, prélevé au cours d'une opération de peche, 155 * d'un 156 * échantillonnage au débarquement ou d'une vente. Il s'agit de la partie qui est recueillie 157 * pour 158 * analyse ou dénombrement. 159 * Un prélèvement est rattaché à une opération de peche ou un groupe d'opérations, un 160 * débarquement ou à 161 * une vente. Il peut être en plus rattaché à un des lots échantillonnés (le lot de provenance). 162 * Dans le cas des marées observées en mer, un prlèvement correspond à un individu, dont le 163 * support 164 * est, par exemple : 165 * - crustacé (crevette...) 166 * - poisson (merlu, sardine...) 167 * - gastéropode (bigorneau, littorine...) 168 * - echinoderme (oursin...) 169 * - etc. 170 * Le nombre d'individu, généralement égal à 1, permet de constituer des prélèvement de 171 * plusieurs 172 * individu (dès lors qu'il sont ne meme anture). Chaque résultat de mesure (SampleMeasurement) 173 * pourra 174 * identifié l'individu concerné par la mesure, par une numéro din'dividu. 175 * Un mnémonique, représentant généralement l'étiquette collée sur le sachet contenant le 176 * prélèvement, 177 * permet d"identifier le prélèvement de manière simple, notamment en laboratoire pour la saisie 178 * des 179 * lectures d'age, etc.. 180 * Par exemple de prélèvement : 181 * - un poisson, d'une espèce donnée, sur lequel est prélevé un otholithe, et/ou des écailes 182 * afin de 183 * réaliser une lecture d'age. 184 * - un cétacé, issu d'un lot, sur lesquels doit être effectué des analyses d'age, de taille, 185 * - etc. 186 * @param sampleIn Sample 187 */ 188 public void setSample(Sample sampleIn) 189 { 190 this.sample = sampleIn; 191 } 192 193 /** 194 * This entity does not have any identifiers 195 * but since it extends the <code>MeasurementImpl</code> class 196 * it will simply delegate the call up there. 197 * 198 * @see fr.ifremer.adagio.core.dao.data.measure.Measurement#equals(Object) 199 */ 200 @Override 201 public boolean equals(Object object) 202 { 203 return super.equals(object); 204 } 205 206 /** 207 * This entity does not have any identifiers 208 * but since it extends the <code>MeasurementImpl</code> class 209 * it will simply delegate the call up there. 210 * 211 * @see fr.ifremer.adagio.core.dao.data.measure.Measurement#hashCode() 212 */ 213 @Override 214 public int hashCode() 215 { 216 return super.hashCode(); 217 } 218 219 /** 220 * Constructs new instances of {@link SampleMeasurement}. 221 */ 222 public static final class Factory 223 { 224 /** 225 * Constructs a new instance of {@link SampleMeasurement}. 226 * @return new SampleMeasurementImpl() 227 */ 228 public static SampleMeasurement newInstance() 229 { 230 return new SampleMeasurementImpl(); 231 } 232 233 /** 234 * Constructs a new instance of {@link SampleMeasurement}, taking all required and/or 235 * read-only properties as arguments, except for identifiers. 236 * @param qualityFlag QualityFlag 237 * @param pmfm Pmfm 238 * @param isReferenceMeasurement Boolean 239 * @param sample Sample 240 * @return newInstance 241 */ 242 public static SampleMeasurement newInstance(QualityFlag qualityFlag, Pmfm pmfm, Boolean isReferenceMeasurement, Sample sample) 243 { 244 final SampleMeasurement entity = new SampleMeasurementImpl(); 245 entity.setQualityFlag(qualityFlag); 246 entity.setPmfm(pmfm); 247 entity.setIsReferenceMeasurement(isReferenceMeasurement); 248 entity.setSample(sample); 249 return entity; 250 } 251 252 /** 253 * Constructs a new instance of {@link SampleMeasurement}, taking all possible properties 254 * (except the identifier(s))as arguments. 255 * @param numericalValue Float 256 * @param alphanumericalValue String 257 * @param digitCount Integer 258 * @param precisionValue Float 259 * @param controlDate Date 260 * @param validationDate Date 261 * @param qualificationDate Date 262 * @param qualificationComments String 263 * @param aggregationLevel AggregationLevel 264 * @param qualitativeValue QualitativeValue 265 * @param qualityFlag QualityFlag 266 * @param precisionType PrecisionType 267 * @param analysisInstrument AnalysisInstrument 268 * @param pmfm Pmfm 269 * @param department Department 270 * @param numericalPrecision NumericalPrecision 271 * @param individualNumber Short 272 * @param isReferenceMeasurement Boolean 273 * @param sample Sample 274 * @return newInstance SampleMeasurement 275 */ 276 public static SampleMeasurement newInstance(Float numericalValue, String alphanumericalValue, Integer digitCount, Float precisionValue, Date controlDate, Date validationDate, Date qualificationDate, String qualificationComments, AggregationLevel aggregationLevel, QualitativeValue qualitativeValue, QualityFlag qualityFlag, PrecisionType precisionType, AnalysisInstrument analysisInstrument, Pmfm pmfm, Department department, NumericalPrecision numericalPrecision, Short individualNumber, Boolean isReferenceMeasurement, Sample sample) 277 { 278 final SampleMeasurement entity = new SampleMeasurementImpl(); 279 entity.setNumericalValue(numericalValue); 280 entity.setAlphanumericalValue(alphanumericalValue); 281 entity.setDigitCount(digitCount); 282 entity.setPrecisionValue(precisionValue); 283 entity.setControlDate(controlDate); 284 entity.setValidationDate(validationDate); 285 entity.setQualificationDate(qualificationDate); 286 entity.setQualificationComments(qualificationComments); 287 entity.setAggregationLevel(aggregationLevel); 288 entity.setQualitativeValue(qualitativeValue); 289 entity.setQualityFlag(qualityFlag); 290 entity.setPrecisionType(precisionType); 291 entity.setAnalysisInstrument(analysisInstrument); 292 entity.setPmfm(pmfm); 293 entity.setDepartment(department); 294 entity.setNumericalPrecision(numericalPrecision); 295 entity.setIndividualNumber(individualNumber); 296 entity.setIsReferenceMeasurement(isReferenceMeasurement); 297 entity.setSample(sample); 298 return entity; 299 } 300 } 301 302 /** 303 * @see Comparable#compareTo 304 */ 305 public int compareTo(SampleMeasurement o) 306 { 307 int cmp = 0; 308 if (this.getId() != null) 309 { 310 cmp = this.getId().compareTo(o.getId()); 311 } 312 else 313 { 314 if (this.getIndividualNumber() != null) 315 { 316 cmp = (cmp != 0 ? cmp : this.getIndividualNumber().compareTo(o.getIndividualNumber())); 317 } 318 if (this.isIsReferenceMeasurement() != null) 319 { 320 cmp = (cmp != 0 ? cmp : this.isIsReferenceMeasurement().compareTo(o.isIsReferenceMeasurement())); 321 } 322 } 323 return cmp; 324 } 325// HibernateEntity.vsl merge-point 326// SampleMeasurement.java merge-point 327}