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.samplingScheme; 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 java.sql.Timestamp; 033import java.util.Collection; 034import java.util.Date; 035import java.util.Set; 036import org.andromda.spring.PaginationResult; 037 038/** 039 * Représente une ligne du plan d'échantillonnage. 040 * @since v3.2.0 041 * @see SamplingStrata 042 */ 043public interface SamplingStrataDao 044{ 045 /** 046 * This constant is used as a transformation flag; entities can be converted automatically into value objects 047 * or other types, different methods in a class implementing this interface support this feature: look for 048 * an <code>int</code> parameter called <code>transform</code>. 049 * <p> 050 * This specific flag denotes no transformation will occur. 051 */ 052 public static final int TRANSFORM_NONE = 0; 053 054 055 /** 056 * Transforms the given results to a collection of {@link SamplingStrata} 057 * instances (this is useful when the returned results contains a row of data and you want just entities only). 058 * 059 * @param results the query results. 060 */ 061 public void toEntities(final Collection<?> results); 062 063 /** 064 * Gets an instance of SamplingStrata from the persistent store. 065 * @param id 066 * @return SamplingStrata 067 */ 068 public SamplingStrata get(Integer id); 069 070 /** 071 * <p> 072 * Does the same thing as {@link #get(Integer)} with an 073 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 074 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 075 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 076 * optionally transform the entity (into a value object for example). By default, transformation does 077 * not occur. 078 * </p> 079 * 080 * @param transform flag to determine transformation type. 081 * @param id the identifier of the entity to get. 082 * @return either the entity or the object transformed from the entity. 083 */ 084 public Object get(int transform, Integer id); 085 086 /** 087 * Loads an instance of SamplingStrata from the persistent store. 088 * @param id 089 * @return SamplingStrata 090 */ 091 public SamplingStrata load(Integer id); 092 093 /** 094 * <p> 095 * Does the same thing as {@link #load(Integer)} with an 096 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 097 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 098 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 099 * optionally transform the entity (into a value object for example). By default, transformation does 100 * not occur. 101 * </p> 102 * 103 * @param transform flag to determine transformation type. 104 * @param id the identifier of the entity to load. 105 * @return either the entity or the object transformed from the entity. 106 */ 107 public Object load(int transform, Integer id); 108 109 /** 110 * Loads all entities of type {@link SamplingStrata}. 111 * 112 * @return the loaded entities. 113 */ 114 public Collection<SamplingStrata> loadAll(); 115 116 /** 117 * <p> 118 * Does the same thing as {@link #loadAll()} with an 119 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 120 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 121 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 122 * transform the entity (into a value object for example). By default, transformation does 123 * not occur. 124 * </p> 125 * 126 * @param transform the flag indicating what transformation to use. 127 * @return the loaded entities. 128 */ 129 public Collection<?> loadAll(final int transform); 130 131 /** 132 * <p> 133 * Does the same thing as {@link #loadAll()} with an 134 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 135 * 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 136 * page retrieved. 137 * </p> 138 * 139 * @param pageNumber the page number to retrieve when paging results. 140 * @param pageSize the size of the page to retrieve when paging results. 141 * @return the loaded entities. 142 */ 143 public Collection<?> loadAll(final int pageNumber, final int pageSize); 144 145 /** 146 * <p> 147 * Does the same thing as {@link #loadAll(int)} with an 148 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 149 * 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 150 * page retrieved. 151 * </p> 152 * 153 * @param transform the flag indicating what transformation to use. 154 * @param pageNumber the page number to retrieve when paging results. 155 * @param pageSize the size of the page to retrieve when paging results. 156 * @return the loaded entities. 157 */ 158 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize); 159 160 /** 161 * Creates an instance of SamplingStrata and adds it to the persistent store. 162 * @param samplingStrata 163 * @return SamplingStrata 164 */ 165 public SamplingStrata create(SamplingStrata samplingStrata); 166 167 /** 168 * <p> 169 * Does the same thing as {@link #create(SamplingStrata)} with an 170 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 171 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 172 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 173 * transform the entity (into a value object for example). By default, transformation does 174 * not occur. 175 * </p> 176 * @param transform 177 * @param samplingStrata 178 * @return Object 179 */ 180 public Object create(int transform, SamplingStrata samplingStrata); 181 182 /** 183 * Creates a new instance of SamplingStrata and adds 184 * from the passed in <code>entities</code> collection 185 * 186 * @param entities the collection of SamplingStrata 187 * instances to create. 188 * 189 * @return the created instances. 190 */ 191 public Collection<SamplingStrata> create(Collection<SamplingStrata> entities); 192 193 /** 194 * <p> 195 * Does the same thing as {@link #create(SamplingStrata)} with an 196 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 197 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 198 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 199 * transform the entities (into value objects for example). By default, transformation does 200 * not occur. 201 * </p> 202 * @param transform 203 * @param entities 204 * @return Collection 205 */ 206 public Collection<?> create(int transform, Collection<SamplingStrata> entities); 207 208 /** 209 * <p> 210 * Creates a new <code>SamplingStrata</code> 211 * instance from <strong>all</strong> attributes and adds it to 212 * the persistent store. 213 * </p> 214 * @param label Mnémonique de la ligne du plan. 215Ce mnémonique doit être unique en base (clef naturelle) pour tout les plans d'échantillonnage de la 216base de données, car il s'agit d'un code fréquemment utilisé pour identifier une ligne de plan. 217 * @param startDate 218 * @param endDate 219 * @param description Nom de la strate. 220Dans WAO : METIER_LIBELLE 221"Chalutage hauturier à démerseaux à grand fond" 222TODO : à renommer en "name" ? 223 * @param comments Commentaires sur la strate. 224Dans WAO : PLAN_COMMENT 225 * @param updateDate 226 * @return SamplingStrata 227 */ 228 public SamplingStrata create( 229 String label, 230 Date startDate, 231 Date endDate, 232 String description, 233 String comments, 234 Timestamp updateDate); 235 236 /** 237 * <p> 238 * Does the same thing as {@link #create(String, Date, Date, String, String, Timestamp)} with an 239 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 240 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 241 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 242 * transform the entity (into a value object for example). By default, transformation does 243 * not occur. 244 * </p> 245 * @param transform 246 * @param label Mnémonique de la ligne du plan. 247Ce mnémonique doit être unique en base (clef naturelle) pour tout les plans d'échantillonnage de la 248base de données, car il s'agit d'un code fréquemment utilisé pour identifier une ligne de plan. 249 * @param startDate 250 * @param endDate 251 * @param description Nom de la strate. 252Dans WAO : METIER_LIBELLE 253"Chalutage hauturier à démerseaux à grand fond" 254TODO : à renommer en "name" ? 255 * @param comments Commentaires sur la strate. 256Dans WAO : PLAN_COMMENT 257 * @param updateDate 258 * @return SamplingStrata 259 */ 260 public Object create( 261 int transform, 262 String label, 263 Date startDate, 264 Date endDate, 265 String description, 266 String comments, 267 Timestamp updateDate); 268 269 /** 270 * <p> 271 * Creates a new <code>SamplingStrata</code> 272 * instance from only <strong>required</strong> properties (attributes 273 * and association ends) and adds it to the persistent store. 274 * </p> 275 * @param label 276 * @param samplingScheme 277 * @param updateDate 278 * @return SamplingStrata 279 */ 280 public SamplingStrata create( 281 String label, 282 SamplingScheme samplingScheme, 283 Timestamp updateDate); 284 285 /** 286 * <p> 287 * Does the same thing as {@link #create(String, Timestamp)} with an 288 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 289 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 290 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 291 * transform the entity (into a value object for example). By default, transformation does 292 * not occur. 293 * </p> 294 * @param transform flag to determine transformation type. 295 * @param label 296 * @param samplingScheme 297 * @param updateDate 298 * @return Object 299 */ 300 public Object create( 301 int transform, 302 String label, 303 SamplingScheme samplingScheme, 304 Timestamp updateDate); 305 306 /** 307 * Updates the <code>samplingStrata</code> instance in the persistent store. 308 * @param samplingStrata 309 */ 310 public void update(SamplingStrata samplingStrata); 311 312 /** 313 * Updates all instances in the <code>entities</code> collection in the persistent store. 314 * @param entities 315 */ 316 public void update(Collection<SamplingStrata> entities); 317 318 /** 319 * Removes the instance of SamplingStrata from the persistent store. 320 * @param samplingStrata 321 */ 322 public void remove(SamplingStrata samplingStrata); 323 324 /** 325 * Removes the instance of SamplingStrata having the given 326 * <code>identifier</code> from the persistent store. 327 * @param id 328 */ 329 public void remove(Integer id); 330 331 /** 332 * Removes all entities in the given <code>entities</code> collection. 333 * @param entities 334 */ 335 public void remove(Collection<SamplingStrata> entities); 336 337 338 /** 339 * Does the same thing as {@link #search(int, Search)} but with an 340 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 341 * limit your data to a specified page number and size. 342 * 343 * @param transform the transformation flag. 344 * @param pageNumber the page number in the data to retrieve 345 * @param pageSize the size of the page to retrieve. 346 * @param search the search object which provides the search parameters and pagination specification. 347 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 348 */ 349 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search); 350 351 /** 352 * Does the same thing as {@link #search(Search)} but with an 353 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 354 * limit your data to a specified page number and size. 355 * 356 * @param pageNumber the page number in the data to retrieve 357 * @param pageSize the size of the page to retrieve. 358 * @param search the search object which provides the search parameters and pagination specification. 359 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 360 */ 361 public PaginationResult search(final int pageNumber, final int pageSize, final Search search); 362 363 /** 364 * Does the same thing as {@link #search(Search)} but with an 365 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 366 * finder results will <strong>NOT</strong> be transformed during retrieval. 367 * If this flag is any of the other constants defined here 368 * then results <strong>WILL BE</strong> passed through an operation which can optionally 369 * transform the entities (into value objects for example). By default, transformation does 370 * not occur. 371 * 372 * @param transform the transformation flag. 373 * @param search the search object which provides the search parameters and pagination specification. 374 * @return any found results from the search. 375 */ 376 public Set<?> search(final int transform, final Search search); 377 378 /** 379 * Performs a search using the parameters specified in the given <code>search</code> object. 380 * 381 * @param search the search object which provides the search parameters and pagination specification. 382 * @return any found results from the search. 383 */ 384 public Set<SamplingStrata> search(final Search search); 385 386 /** 387 * Allows transformation of entities into value objects 388 * (or something else for that matter), when the <code>transform</code> 389 * flag is set to one of the constants defined in <code>fr.ifremer.adagio.core.dao.data.samplingScheme.SamplingStrataDao</code>, please note 390 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 391 * will be returned. 392 * 393 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 394 * 395 * @param transform one of the constants declared in {@link fr.ifremer.adagio.core.dao.data.samplingScheme.SamplingStrataDao} 396 * @param entity an entity that was found 397 * @return the transformed entity (i.e. new value object, etc) 398 * @see #transformEntities(int,Collection) 399 */ 400 public Object transformEntity(final int transform, final SamplingStrata entity); 401 402 /** 403 * Transforms a collection of entities using the 404 * {@link #transformEntity(int,SamplingStrata)} 405 * method. This method does not instantiate a new collection. 406 * <p> 407 * This method is to be used internally only. 408 * 409 * @param transform one of the constants declared in <code>fr.ifremer.adagio.core.dao.data.samplingScheme.SamplingStrataDao</code> 410 * @param entities the collection of entities to transform 411 * @see #transformEntity(int,SamplingStrata) 412 */ 413 public void transformEntities(final int transform, final Collection<?> entities); 414 415 // spring-dao merge-point 416}