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.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.Search; 032import fr.ifremer.adagio.core.dao.referential.Status; 033import fr.ifremer.adagio.core.dao.referential.ValidityStatus; 034import java.sql.Timestamp; 035import java.util.Collection; 036import java.util.Date; 037import java.util.Set; 038import org.andromda.spring.PaginationResult; 039 040/** 041 * Quadruplet paramètre/support/méthode/fraction. Ce quadruplet est systématiquement associé aux 042 * résultats et décrit précisemment les conditions de mesure/d'analyse de ceux-ci. 043 * @see Pmfm 044 */ 045public interface PmfmDao 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 Pmfm} 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 Pmfm from the persistent store. 067 * @param id 068 * @return Pmfm 069 */ 070 public Pmfm 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 Pmfm from the persistent store. 090 * @param id 091 * @return Pmfm 092 */ 093 public Pmfm 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 Pmfm}. 113 * 114 * @return the loaded entities. 115 */ 116 public Collection<Pmfm> 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 Pmfm and adds it to the persistent store. 164 * @param pmfm 165 * @return Pmfm 166 */ 167 public Pmfm create(Pmfm pmfm); 168 169 /** 170 * <p> 171 * Does the same thing as {@link #create(Pmfm)} 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 pmfm 180 * @return Object 181 */ 182 public Object create(int transform, Pmfm pmfm); 183 184 /** 185 * Creates a new instance of Pmfm and adds 186 * from the passed in <code>entities</code> collection 187 * 188 * @param entities the collection of Pmfm 189 * instances to create. 190 * 191 * @return the created instances. 192 */ 193 public Collection<Pmfm> create(Collection<Pmfm> entities); 194 195 /** 196 * <p> 197 * Does the same thing as {@link #create(Pmfm)} 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<Pmfm> entities); 209 210 /** 211 * <p> 212 * Creates a new <code>Pmfm</code> 213 * instance from <strong>all</strong> attributes and adds it to 214 * the persistent store. 215 * </p> 216 * @param signifFiguresNumber Nombre de chiffres significatifs en tout du résultat pour le quadruplet concerné. 217 * @param maximumNumberDecimals Nombre de décimales significatives pour le résultat mesuré/analysé suivant le quadruplet lié. 218 * @param detectionThreshold Seuil de détection des instruments de mesure et de la méthode associée. 219 * @param minValue Valeur mimimale autorisée par défaut (peut etre redéfini dans les stratégies). 220 * @param maxValue Valeur maximale autorisée par défaut (peut etre redéfini dans les stratégies). 221 * @param precision 222 * @param defaultValue Précision de la mesure associé pour le PSFM.Typiquement, cette précision est utile lors de la saisie 223de plusieursinstruments et de la méthode associée. 224 * @param creationDate 225 * @param description 226 * @param comments 227 * @param updateDate 228 * @return Pmfm 229 */ 230 public Pmfm create( 231 Integer signifFiguresNumber, 232 Integer maximumNumberDecimals, 233 Float detectionThreshold, 234 Float minValue, 235 Float maxValue, 236 Float precision, 237 Float defaultValue, 238 Date creationDate, 239 String description, 240 String comments, 241 Timestamp updateDate); 242 243 /** 244 * <p> 245 * Does the same thing as {@link #create(Integer, Integer, Float, Float, Float, Float, Float, Date, String, String, Timestamp)} with an 246 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 247 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 248 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 249 * transform the entity (into a value object for example). By default, transformation does 250 * not occur. 251 * </p> 252 * @param transform 253 * @param signifFiguresNumber Nombre de chiffres significatifs en tout du résultat pour le quadruplet concerné. 254 * @param maximumNumberDecimals Nombre de décimales significatives pour le résultat mesuré/analysé suivant le quadruplet lié. 255 * @param detectionThreshold Seuil de détection des instruments de mesure et de la méthode associée. 256 * @param minValue Valeur mimimale autorisée par défaut (peut etre redéfini dans les stratégies). 257 * @param maxValue Valeur maximale autorisée par défaut (peut etre redéfini dans les stratégies). 258 * @param precision 259 * @param defaultValue Précision de la mesure associé pour le PSFM.Typiquement, cette précision est utile lors de la saisie 260de plusieursinstruments et de la méthode associée. 261 * @param creationDate 262 * @param description 263 * @param comments 264 * @param updateDate 265 * @return Pmfm 266 */ 267 public Object create( 268 int transform, 269 Integer signifFiguresNumber, 270 Integer maximumNumberDecimals, 271 Float detectionThreshold, 272 Float minValue, 273 Float maxValue, 274 Float precision, 275 Float defaultValue, 276 Date creationDate, 277 String description, 278 String comments, 279 Timestamp updateDate); 280 281 /** 282 * <p> 283 * Creates a new <code>Pmfm</code> 284 * instance from only <strong>required</strong> properties (attributes 285 * and association ends) and adds it to the persistent store. 286 * </p> 287 * @param aggregationLevel 288 * @param creationDate 289 * @param fraction 290 * @param matrix 291 * @param method 292 * @param parameter 293 * @param status 294 * @param unit 295 * @param updateDate 296 * @param validityStatus 297 * @return Pmfm 298 */ 299 public Pmfm create( 300 AggregationLevel aggregationLevel, 301 Date creationDate, 302 Fraction fraction, 303 Matrix matrix, 304 Method method, 305 Parameter parameter, 306 Status status, 307 Unit unit, 308 Timestamp updateDate, 309 ValidityStatus validityStatus); 310 311 /** 312 * <p> 313 * Does the same thing as {@link #create(Date, Timestamp)} with an 314 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 315 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 316 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 317 * transform the entity (into a value object for example). By default, transformation does 318 * not occur. 319 * </p> 320 * @param transform flag to determine transformation type. 321 * @param aggregationLevel 322 * @param creationDate 323 * @param fraction 324 * @param matrix 325 * @param method 326 * @param parameter 327 * @param status 328 * @param unit 329 * @param updateDate 330 * @param validityStatus 331 * @return Object 332 */ 333 public Object create( 334 int transform, 335 AggregationLevel aggregationLevel, 336 Date creationDate, 337 Fraction fraction, 338 Matrix matrix, 339 Method method, 340 Parameter parameter, 341 Status status, 342 Unit unit, 343 Timestamp updateDate, 344 ValidityStatus validityStatus); 345 346 /** 347 * Updates the <code>pmfm</code> instance in the persistent store. 348 * @param pmfm 349 */ 350 public void update(Pmfm pmfm); 351 352 /** 353 * Updates all instances in the <code>entities</code> collection in the persistent store. 354 * @param entities 355 */ 356 public void update(Collection<Pmfm> entities); 357 358 /** 359 * Removes the instance of Pmfm from the persistent store. 360 * @param pmfm 361 */ 362 public void remove(Pmfm pmfm); 363 364 /** 365 * Removes the instance of Pmfm having the given 366 * <code>identifier</code> from the persistent store. 367 * @param id 368 */ 369 public void remove(Integer id); 370 371 /** 372 * Removes all entities in the given <code>entities</code> collection. 373 * @param entities 374 */ 375 public void remove(Collection<Pmfm> entities); 376 377 378 /** 379 * Does the same thing as {@link #search(int, Search)} but with an 380 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 381 * limit your data to a specified page number and size. 382 * 383 * @param transform the transformation flag. 384 * @param pageNumber the page number in the data to retrieve 385 * @param pageSize the size of the page to retrieve. 386 * @param search the search object which provides the search parameters and pagination specification. 387 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 388 */ 389 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search); 390 391 /** 392 * Does the same thing as {@link #search(Search)} but with an 393 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 394 * limit your data to a specified page number and size. 395 * 396 * @param pageNumber the page number in the data to retrieve 397 * @param pageSize the size of the page to retrieve. 398 * @param search the search object which provides the search parameters and pagination specification. 399 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 400 */ 401 public PaginationResult search(final int pageNumber, final int pageSize, final Search search); 402 403 /** 404 * Does the same thing as {@link #search(Search)} but with an 405 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 406 * finder results will <strong>NOT</strong> be transformed during retrieval. 407 * If this flag is any of the other constants defined here 408 * then results <strong>WILL BE</strong> passed through an operation which can optionally 409 * transform the entities (into value objects for example). By default, transformation does 410 * not occur. 411 * 412 * @param transform the transformation flag. 413 * @param search the search object which provides the search parameters and pagination specification. 414 * @return any found results from the search. 415 */ 416 public Set<?> search(final int transform, final Search search); 417 418 /** 419 * Performs a search using the parameters specified in the given <code>search</code> object. 420 * 421 * @param search the search object which provides the search parameters and pagination specification. 422 * @return any found results from the search. 423 */ 424 public Set<Pmfm> search(final Search search); 425 426 /** 427 * Allows transformation of entities into value objects 428 * (or something else for that matter), when the <code>transform</code> 429 * flag is set to one of the constants defined in <code>fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao</code>, please note 430 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 431 * will be returned. 432 * 433 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 434 * 435 * @param transform one of the constants declared in {@link fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao} 436 * @param entity an entity that was found 437 * @return the transformed entity (i.e. new value object, etc) 438 * @see #transformEntities(int,Collection) 439 */ 440 public Object transformEntity(final int transform, final Pmfm entity); 441 442 /** 443 * Transforms a collection of entities using the 444 * {@link #transformEntity(int,Pmfm)} 445 * method. This method does not instantiate a new collection. 446 * <p> 447 * This method is to be used internally only. 448 * 449 * @param transform one of the constants declared in <code>fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao</code> 450 * @param entities the collection of entities to transform 451 * @see #transformEntity(int,Pmfm) 452 */ 453 public void transformEntities(final int transform, final Collection<?> entities); 454 455 // spring-dao merge-point 456}