001// license-header java merge-point 002// 003// Attention: Generated code! Do not modify by hand! 004// Generated by: SpringDao.vsl in andromda-spring-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.Search; 032import fr.ifremer.adagio.core.dao.data.samplingScheme.SamplingStrata; 033import fr.ifremer.adagio.core.dao.referential.QualityFlag; 034import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm; 035import java.util.Collection; 036import java.util.Date; 037import java.util.Set; 038import org.andromda.spring.PaginationResult; 039 040/** 041 * Caratéristiques de la straté d'échantillonnage, en terme de valeurs sur PSFM. 042 * @since v3.2.0 043 * @see SamplingStrataMeasurement 044 */ 045public interface SamplingStrataMeasurementDao 046{ 047 /** 048 * This constant is used as a transformation flag; entities can be converted automatically into value objects 049 * or other types, different methods in a class implementing this interface support this feature: look for 050 * an <code>int</code> parameter called <code>transform</code>. 051 * <p> 052 * This specific flag denotes no transformation will occur. 053 */ 054 public static final int TRANSFORM_NONE = 0; 055 056 057 /** 058 * Transforms the given results to a collection of {@link SamplingStrataMeasurement} 059 * instances (this is useful when the returned results contains a row of data and you want just entities only). 060 * 061 * @param results the query results. 062 */ 063 public void toEntities(final Collection<?> results); 064 065 /** 066 * Gets an instance of SamplingStrataMeasurement from the persistent store. 067 * @param id 068 * @return SamplingStrataMeasurement 069 */ 070 public SamplingStrataMeasurement get(Integer id); 071 072 /** 073 * <p> 074 * Does the same thing as {@link #get(Integer)} with an 075 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 076 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 077 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 078 * optionally transform the entity (into a value object for example). By default, transformation does 079 * not occur. 080 * </p> 081 * 082 * @param transform flag to determine transformation type. 083 * @param id the identifier of the entity to get. 084 * @return either the entity or the object transformed from the entity. 085 */ 086 public Object get(int transform, Integer id); 087 088 /** 089 * Loads an instance of SamplingStrataMeasurement from the persistent store. 090 * @param id 091 * @return SamplingStrataMeasurement 092 */ 093 public SamplingStrataMeasurement load(Integer id); 094 095 /** 096 * <p> 097 * Does the same thing as {@link #load(Integer)} with an 098 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 099 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 100 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 101 * optionally transform the entity (into a value object for example). By default, transformation does 102 * not occur. 103 * </p> 104 * 105 * @param transform flag to determine transformation type. 106 * @param id the identifier of the entity to load. 107 * @return either the entity or the object transformed from the entity. 108 */ 109 public Object load(int transform, Integer id); 110 111 /** 112 * Loads all entities of type {@link SamplingStrataMeasurement}. 113 * 114 * @return the loaded entities. 115 */ 116 public Collection<SamplingStrataMeasurement> loadAll(); 117 118 /** 119 * <p> 120 * Does the same thing as {@link #loadAll()} with an 121 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 122 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 123 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 124 * transform the entity (into a value object for example). By default, transformation does 125 * not occur. 126 * </p> 127 * 128 * @param transform the flag indicating what transformation to use. 129 * @return the loaded entities. 130 */ 131 public Collection<?> loadAll(final int transform); 132 133 /** 134 * <p> 135 * Does the same thing as {@link #loadAll()} with an 136 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 137 * argument allows you to specify the page number when you are paging the results and the pageSize allows you to specify the size of the 138 * page retrieved. 139 * </p> 140 * 141 * @param pageNumber the page number to retrieve when paging results. 142 * @param pageSize the size of the page to retrieve when paging results. 143 * @return the loaded entities. 144 */ 145 public Collection<?> loadAll(final int pageNumber, final int pageSize); 146 147 /** 148 * <p> 149 * Does the same thing as {@link #loadAll(int)} with an 150 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 151 * argument allows you to specify the page number when you are paging the results and the pageSize allows you to specify the size of the 152 * page retrieved. 153 * </p> 154 * 155 * @param transform the flag indicating what transformation to use. 156 * @param pageNumber the page number to retrieve when paging results. 157 * @param pageSize the size of the page to retrieve when paging results. 158 * @return the loaded entities. 159 */ 160 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize); 161 162 /** 163 * Creates an instance of SamplingStrataMeasurement and adds it to the persistent store. 164 * @param samplingStrataMeasurement 165 * @return SamplingStrataMeasurement 166 */ 167 public SamplingStrataMeasurement create(SamplingStrataMeasurement samplingStrataMeasurement); 168 169 /** 170 * <p> 171 * Does the same thing as {@link #create(SamplingStrataMeasurement)} with an 172 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 173 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 174 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 175 * transform the entity (into a value object for example). By default, transformation does 176 * not occur. 177 * </p> 178 * @param transform 179 * @param samplingStrataMeasurement 180 * @return Object 181 */ 182 public Object create(int transform, SamplingStrataMeasurement samplingStrataMeasurement); 183 184 /** 185 * Creates a new instance of SamplingStrataMeasurement and adds 186 * from the passed in <code>entities</code> collection 187 * 188 * @param entities the collection of SamplingStrataMeasurement 189 * instances to create. 190 * 191 * @return the created instances. 192 */ 193 public Collection<SamplingStrataMeasurement> create(Collection<SamplingStrataMeasurement> entities); 194 195 /** 196 * <p> 197 * Does the same thing as {@link #create(SamplingStrataMeasurement)} with an 198 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 199 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 200 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 201 * transform the entities (into value objects for example). By default, transformation does 202 * not occur. 203 * </p> 204 * @param transform 205 * @param entities 206 * @return Collection 207 */ 208 public Collection<?> create(int transform, Collection<SamplingStrataMeasurement> entities); 209 210 /** 211 * <p> 212 * Creates a new <code>SamplingStrataMeasurement</code> 213 * instance from <strong>all</strong> attributes and adds it to 214 * the persistent store. 215 * </p> 216 * @param numericalValue <html> 217<head> 218<title>V </title> 219</head> 220<body> 221valeur numérique de la mesure.<br>Elle est nécessairement exprimée 222dans l'unité associé au PSFM de la mesure. 223<br> 224Renseigné uniquement pour un PSFM numérique 225(PMFM.parameter.isQualitative=false) 226</body> 227</html> 228 * @param alphanumericalValue <html> 229<head> 230</head> 231<body> 232<p> 233Valeur alphanumérique de la mesure. 234<br> </p> 235<p> 236<br> 237<u>Attention :</u> <b>Utilisation à éviter</b>. A utiliser 238uniquement dans des cas ou les valeurs qualitatives ne peuvent pas 239convenir (format non fixe, etc.). 240</p> 241<p> 242</p> 243<p> 244Exemples :<br>* Numéros de contrat (Ventre ERS)<br>* Type de 245dimension d'engin (logbook - flux SACAPT) "2X60", "2x6 dragues 75", 246"13.9x2", "2x7m²", "2x17.50", "2m x 2", etc 247</p> 248</body> 249</html> 250 * @param digitCount <html> 251<head> 252</head> 253<body> 254<p> 255Nombre de digits saisis dans la valeur numérique de la mesure. 256</p> 257<p> 258</p> 259<p> 260Cela permet de stocker "10.00" (numericalvalue=10 et digitCount=2) et de 261pouvoir restituer la valeur sous la meme forme. 262</p> 263</body> 264</html> 265 * @param precisionValue <html> 266<head> 267</head> 268<body> 269<p> 270Précision de la mesure. Par exemple : precisioNValue=0.5 pour indiquer 271une précision à + ou - "0.5". 272<br> </p> 273<p> 274</p> 275<p> 276Valeur exprimée soit dans l'unite de la mesure (ex : "mm"), soit en 277poucentage de la mesure (suivant la valeur de <i>PrecisionType</i>). 278</p> 279</body> 280</html> 281 * @param controlDate Date du controle de la donnée. 282Le controle est la première phase de validation de la donnée. 283Exemple : 284- Dans Allegro, ce controle est effectué lorsque l'utilisateur a achevé sa saisie et qu'il souhaite 285"Terminer la saisie", dans le but de transmettre ses données au système centrale. Les controle 286effectué par Allegro sur le poste client sont des vérifications sur les champs obligatoires, ou 287encore sur la cohérence des données (cas d'un arbre d'échantillonnage). 288 * @param validationDate Date de validation de la donnée. 289La validation est typiquement effectué par un thématicien responsable des données. Dans Allegro, il 290s'agit du superviseur du portefeuille de données qui en est responsable. 291 * @param qualificationDate Date de qualification de la donnée. 292L'étape de qualification est liée à l'affectation d'un flag qualité (bon, mauvais, etc.) sur la 293donnée. 294- la qualification n'est pas encore gérée dans Allegro, dans le sens ou il n'existe pass encore 295d'interface pour affecter le flag qualité. Par défaut, le niveau de qualité est donc à "non 296qualifiée" 297 * @param qualificationComments 298 * @return SamplingStrataMeasurement 299 */ 300 public SamplingStrataMeasurement create( 301 Float numericalValue, 302 String alphanumericalValue, 303 Integer digitCount, 304 Float precisionValue, 305 Date controlDate, 306 Date validationDate, 307 Date qualificationDate, 308 String qualificationComments); 309 310 /** 311 * <p> 312 * Does the same thing as {@link #create(Float, String, Integer, Float, Date, Date, Date, String)} with an 313 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 314 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 315 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 316 * transform the entity (into a value object for example). By default, transformation does 317 * not occur. 318 * </p> 319 * @param transform 320 * @param numericalValue <html> 321<head> 322<title>V </title> 323</head> 324<body> 325valeur numérique de la mesure.<br>Elle est nécessairement exprimée 326dans l'unité associé au PSFM de la mesure. 327<br> 328Renseigné uniquement pour un PSFM numérique 329(PMFM.parameter.isQualitative=false) 330</body> 331</html> 332 * @param alphanumericalValue <html> 333<head> 334</head> 335<body> 336<p> 337Valeur alphanumérique de la mesure. 338<br> </p> 339<p> 340<br> 341<u>Attention :</u> <b>Utilisation à éviter</b>. A utiliser 342uniquement dans des cas ou les valeurs qualitatives ne peuvent pas 343convenir (format non fixe, etc.). 344</p> 345<p> 346</p> 347<p> 348Exemples :<br>* Numéros de contrat (Ventre ERS)<br>* Type de 349dimension d'engin (logbook - flux SACAPT) "2X60", "2x6 dragues 75", 350"13.9x2", "2x7m²", "2x17.50", "2m x 2", etc 351</p> 352</body> 353</html> 354 * @param digitCount <html> 355<head> 356</head> 357<body> 358<p> 359Nombre de digits saisis dans la valeur numérique de la mesure. 360</p> 361<p> 362</p> 363<p> 364Cela permet de stocker "10.00" (numericalvalue=10 et digitCount=2) et de 365pouvoir restituer la valeur sous la meme forme. 366</p> 367</body> 368</html> 369 * @param precisionValue <html> 370<head> 371</head> 372<body> 373<p> 374Précision de la mesure. Par exemple : precisioNValue=0.5 pour indiquer 375une précision à + ou - "0.5". 376<br> </p> 377<p> 378</p> 379<p> 380Valeur exprimée soit dans l'unite de la mesure (ex : "mm"), soit en 381poucentage de la mesure (suivant la valeur de <i>PrecisionType</i>). 382</p> 383</body> 384</html> 385 * @param controlDate Date du controle de la donnée. 386Le controle est la première phase de validation de la donnée. 387Exemple : 388- Dans Allegro, ce controle est effectué lorsque l'utilisateur a achevé sa saisie et qu'il souhaite 389"Terminer la saisie", dans le but de transmettre ses données au système centrale. Les controle 390effectué par Allegro sur le poste client sont des vérifications sur les champs obligatoires, ou 391encore sur la cohérence des données (cas d'un arbre d'échantillonnage). 392 * @param validationDate Date de validation de la donnée. 393La validation est typiquement effectué par un thématicien responsable des données. Dans Allegro, il 394s'agit du superviseur du portefeuille de données qui en est responsable. 395 * @param qualificationDate Date de qualification de la donnée. 396L'étape de qualification est liée à l'affectation d'un flag qualité (bon, mauvais, etc.) sur la 397donnée. 398- la qualification n'est pas encore gérée dans Allegro, dans le sens ou il n'existe pass encore 399d'interface pour affecter le flag qualité. Par défaut, le niveau de qualité est donc à "non 400qualifiée" 401 * @param qualificationComments 402 * @return SamplingStrataMeasurement 403 */ 404 public Object create( 405 int transform, 406 Float numericalValue, 407 String alphanumericalValue, 408 Integer digitCount, 409 Float precisionValue, 410 Date controlDate, 411 Date validationDate, 412 Date qualificationDate, 413 String qualificationComments); 414 415 /** 416 * <p> 417 * Creates a new <code>SamplingStrataMeasurement</code> 418 * instance from only <strong>required</strong> properties (attributes 419 * and association ends) and adds it to the persistent store. 420 * </p> 421 * @param pmfm 422 * @param qualityFlag 423 * @param samplingStrata 424 * @return SamplingStrataMeasurement 425 */ 426 public SamplingStrataMeasurement create( 427 Pmfm pmfm, 428 QualityFlag qualityFlag, 429 SamplingStrata samplingStrata); 430 431 /** 432 * <p> 433 * Does the same thing as {@link #create()} with an 434 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 435 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 436 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 437 * transform the entity (into a value object for example). By default, transformation does 438 * not occur. 439 * </p> 440 * @param transform flag to determine transformation type. 441 * @param pmfm 442 * @param qualityFlag 443 * @param samplingStrata 444 * @return Object 445 */ 446 public Object create( 447 int transform, 448 Pmfm pmfm, 449 QualityFlag qualityFlag, 450 SamplingStrata samplingStrata); 451 452 /** 453 * Updates the <code>samplingStrataMeasurement</code> instance in the persistent store. 454 * @param samplingStrataMeasurement 455 */ 456 public void update(SamplingStrataMeasurement samplingStrataMeasurement); 457 458 /** 459 * Updates all instances in the <code>entities</code> collection in the persistent store. 460 * @param entities 461 */ 462 public void update(Collection<SamplingStrataMeasurement> entities); 463 464 /** 465 * Removes the instance of SamplingStrataMeasurement from the persistent store. 466 * @param samplingStrataMeasurement 467 */ 468 public void remove(SamplingStrataMeasurement samplingStrataMeasurement); 469 470 /** 471 * Removes the instance of SamplingStrataMeasurement having the given 472 * <code>identifier</code> from the persistent store. 473 * @param id 474 */ 475 public void remove(Integer id); 476 477 /** 478 * Removes all entities in the given <code>entities</code> collection. 479 * @param entities 480 */ 481 public void remove(Collection<SamplingStrataMeasurement> entities); 482 483 484 /** 485 * Does the same thing as {@link #search(int, Search)} but with an 486 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 487 * limit your data to a specified page number and size. 488 * 489 * @param transform the transformation flag. 490 * @param pageNumber the page number in the data to retrieve 491 * @param pageSize the size of the page to retrieve. 492 * @param search the search object which provides the search parameters and pagination specification. 493 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 494 */ 495 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search); 496 497 /** 498 * Does the same thing as {@link #search(Search)} but with an 499 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 500 * limit your data to a specified page number and size. 501 * 502 * @param pageNumber the page number in the data to retrieve 503 * @param pageSize the size of the page to retrieve. 504 * @param search the search object which provides the search parameters and pagination specification. 505 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 506 */ 507 public PaginationResult search(final int pageNumber, final int pageSize, final Search search); 508 509 /** 510 * Does the same thing as {@link #search(Search)} but with an 511 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 512 * finder results will <strong>NOT</strong> be transformed during retrieval. 513 * If this flag is any of the other constants defined here 514 * then results <strong>WILL BE</strong> passed through an operation which can optionally 515 * transform the entities (into value objects for example). By default, transformation does 516 * not occur. 517 * 518 * @param transform the transformation flag. 519 * @param search the search object which provides the search parameters and pagination specification. 520 * @return any found results from the search. 521 */ 522 public Set<?> search(final int transform, final Search search); 523 524 /** 525 * Performs a search using the parameters specified in the given <code>search</code> object. 526 * 527 * @param search the search object which provides the search parameters and pagination specification. 528 * @return any found results from the search. 529 */ 530 public Set<SamplingStrataMeasurement> search(final Search search); 531 532 /** 533 * Allows transformation of entities into value objects 534 * (or something else for that matter), when the <code>transform</code> 535 * flag is set to one of the constants defined in <code>fr.ifremer.adagio.core.dao.data.measure.SamplingStrataMeasurementDao</code>, please note 536 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 537 * will be returned. 538 * 539 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 540 * 541 * @param transform one of the constants declared in {@link fr.ifremer.adagio.core.dao.data.measure.SamplingStrataMeasurementDao} 542 * @param entity an entity that was found 543 * @return the transformed entity (i.e. new value object, etc) 544 * @see #transformEntities(int,Collection) 545 */ 546 public Object transformEntity(final int transform, final SamplingStrataMeasurement entity); 547 548 /** 549 * Transforms a collection of entities using the 550 * {@link #transformEntity(int,SamplingStrataMeasurement)} 551 * method. This method does not instantiate a new collection. 552 * <p> 553 * This method is to be used internally only. 554 * 555 * @param transform one of the constants declared in <code>fr.ifremer.adagio.core.dao.data.measure.SamplingStrataMeasurementDao</code> 556 * @param entities the collection of entities to transform 557 * @see #transformEntity(int,SamplingStrataMeasurement) 558 */ 559 public void transformEntities(final int transform, final Collection<?> entities); 560 561 // spring-dao merge-point 562}