1 // license-header java merge-point 2 // 3 // Attention: Generated code! Do not modify by hand! 4 // Generated by: SpringDao.vsl in andromda-spring-cartridge. 5 // 6 package fr.ifremer.quadrige2.core.dao.referential.taxon; 7 8 /*- 9 * #%L 10 * Quadrige2 Core :: Server API 11 * %% 12 * Copyright (C) 2017 Ifremer 13 * %% 14 * This program is free software: you can redistribute it and/or modify 15 * it under the terms of the GNU Affero General Public License as published by 16 * the Free Software Foundation, either version 3 of the License, or 17 * (at your option) any later version. 18 * 19 * This program is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * GNU General Public License for more details. 23 * 24 * You should have received a copy of the GNU Affero General Public License 25 * along with this program. If not, see <http://www.gnu.org/licenses/>. 26 * #L% 27 */ 28 29 import fr.ifremer.quadrige2.core.dao.Search; 30 import java.sql.Timestamp; 31 import java.util.Collection; 32 import java.util.Date; 33 import java.util.Set; 34 import org.andromda.spring.PaginationResult; 35 36 /** 37 * Liste les taxons (interface avec ERMS) 38 * @see TaxonName 39 */ 40 public interface TaxonNameDao 41 { 42 /** 43 * This constant is used as a transformation flag; entities can be converted automatically into value objects 44 * or other types, different methods in a class implementing this interface support this feature: look for 45 * an <code>int</code> parameter called <code>transform</code>. 46 * <p> 47 * This specific flag denotes no transformation will occur. 48 */ 49 public static final int TRANSFORM_NONE = 0; 50 51 52 /** 53 * Transforms the given results to a collection of {@link TaxonName} 54 * instances (this is useful when the returned results contains a row of data and you want just entities only). 55 * 56 * @param results the query results. 57 */ 58 public void toEntities(final Collection<?> results); 59 60 /** 61 * Gets an instance of TaxonName from the persistent store. 62 * @param taxonNameId 63 * @return TaxonName 64 */ 65 public TaxonName get(Integer taxonNameId); 66 67 /** 68 * <p> 69 * Does the same thing as {@link #get(Integer)} with an 70 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 71 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 72 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 73 * optionally transform the entity (into a value object for example). By default, transformation does 74 * not occur. 75 * </p> 76 * 77 * @param transform flag to determine transformation type. 78 * @param taxonNameId the identifier of the entity to get. 79 * @return either the entity or the object transformed from the entity. 80 */ 81 public Object get(int transform, Integer taxonNameId); 82 83 /** 84 * Loads an instance of TaxonName from the persistent store. 85 * @param taxonNameId 86 * @return TaxonName 87 */ 88 public TaxonName load(Integer taxonNameId); 89 90 /** 91 * <p> 92 * Does the same thing as {@link #load(Integer)} with an 93 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 94 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 95 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 96 * optionally transform the entity (into a value object for example). By default, transformation does 97 * not occur. 98 * </p> 99 * 100 * @param transform flag to determine transformation type. 101 * @param taxonNameId the identifier of the entity to load. 102 * @return either the entity or the object transformed from the entity. 103 */ 104 public Object load(int transform, Integer taxonNameId); 105 106 /** 107 * Loads all entities of type {@link TaxonName}. 108 * 109 * @return the loaded entities. 110 */ 111 public Collection<TaxonName> loadAll(); 112 113 /** 114 * <p> 115 * Does the same thing as {@link #loadAll()} with an 116 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 117 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 118 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 119 * transform the entity (into a value object for example). By default, transformation does 120 * not occur. 121 * </p> 122 * 123 * @param transform the flag indicating what transformation to use. 124 * @return the loaded entities. 125 */ 126 public Collection<?> loadAll(final int transform); 127 128 /** 129 * <p> 130 * Does the same thing as {@link #loadAll()} with an 131 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 132 * 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 133 * page retrieved. 134 * </p> 135 * 136 * @param pageNumber the page number to retrieve when paging results. 137 * @param pageSize the size of the page to retrieve when paging results. 138 * @return the loaded entities. 139 */ 140 public Collection<?> loadAll(final int pageNumber, final int pageSize); 141 142 /** 143 * <p> 144 * Does the same thing as {@link #loadAll(int)} with an 145 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 146 * 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 147 * page retrieved. 148 * </p> 149 * 150 * @param transform the flag indicating what transformation to use. 151 * @param pageNumber the page number to retrieve when paging results. 152 * @param pageSize the size of the page to retrieve when paging results. 153 * @return the loaded entities. 154 */ 155 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize); 156 157 /** 158 * Creates an instance of TaxonName and adds it to the persistent store. 159 * @param taxonName 160 * @return TaxonName 161 */ 162 public TaxonName create(TaxonName taxonName); 163 164 /** 165 * <p> 166 * Does the same thing as {@link #create(TaxonName)} with an 167 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 168 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 169 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 170 * transform the entity (into a value object for example). By default, transformation does 171 * not occur. 172 * </p> 173 * @param transform 174 * @param taxonName 175 * @return Object 176 */ 177 public Object create(int transform, TaxonName taxonName); 178 179 /** 180 * Creates a new instance of TaxonName and adds 181 * from the passed in <code>entities</code> collection 182 * 183 * @param entities the collection of TaxonName 184 * instances to create. 185 * 186 * @return the created instances. 187 */ 188 public Collection<TaxonName> create(Collection<TaxonName> entities); 189 190 /** 191 * <p> 192 * Does the same thing as {@link #create(TaxonName)} with an 193 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 194 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 195 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 196 * transform the entities (into value objects for example). By default, transformation does 197 * not occur. 198 * </p> 199 * @param transform 200 * @param entities 201 * @return Collection 202 */ 203 public Collection<?> create(int transform, Collection<TaxonName> entities); 204 205 /** 206 * <p> 207 * Creates a new <code>TaxonName</code> 208 * instance from <strong>all</strong> attributes and adds it to 209 * the persistent store. 210 * </p> 211 * @param taxonNameNm Nom scientifique du taxon, unique pour le niveau 212 * @param taxonNameCompleteNm Nom concaténé du taxon 213 * @param taxonNameIsNaming Indique si le taxon respecte les règles de nommage 214 * @param taxonNameCm Commentaire sur le taxon 215 * @param taxonNameUpperRk Rang du taxon parmis les fils d'un même père pour classement 216 * @param taxonNameIsRefer Vrai si le taxon est le taxon référent, faux pour les synonymes. 217 * @param taxonNameIsVirtual Indique si le taxon est virtuel ou non 218 * @param taxonNameObsol Vrai si le taxon est devenu obsolète, il doit plus être proposé dans les listes de saisie 219 * @param taxonNameTempor Vrai s'il s'agit d'une identification provisoire. 220 * @param taxonNameCreationDt Date de création de l'objet 221 * @param updateDt Date de mise à jour de l'objet 222 * @param taxonStartDt Date de début de validité du taxon 223 * @param taxonEndDt Date de fin de validité du taxon 224 * @return TaxonName 225 */ 226 public TaxonName create( 227 String taxonNameNm, 228 String taxonNameCompleteNm, 229 Boolean taxonNameIsNaming, 230 String taxonNameCm, 231 Integer taxonNameUpperRk, 232 Boolean taxonNameIsRefer, 233 Boolean taxonNameIsVirtual, 234 Boolean taxonNameObsol, 235 Boolean taxonNameTempor, 236 Date taxonNameCreationDt, 237 Timestamp updateDt, 238 Date taxonStartDt, 239 Date taxonEndDt); 240 241 /** 242 * <p> 243 * Does the same thing as {@link #create(String, String, Boolean, String, Integer, Boolean, Boolean, Boolean, Boolean, Date, Timestamp, Date, Date)} with an 244 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 245 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 246 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 247 * transform the entity (into a value object for example). By default, transformation does 248 * not occur. 249 * </p> 250 * @param transform 251 * @param taxonNameNm Nom scientifique du taxon, unique pour le niveau 252 * @param taxonNameCompleteNm Nom concaténé du taxon 253 * @param taxonNameIsNaming Indique si le taxon respecte les règles de nommage 254 * @param taxonNameCm Commentaire sur le taxon 255 * @param taxonNameUpperRk Rang du taxon parmis les fils d'un même père pour classement 256 * @param taxonNameIsRefer Vrai si le taxon est le taxon référent, faux pour les synonymes. 257 * @param taxonNameIsVirtual Indique si le taxon est virtuel ou non 258 * @param taxonNameObsol Vrai si le taxon est devenu obsolète, il doit plus être proposé dans les listes de saisie 259 * @param taxonNameTempor Vrai s'il s'agit d'une identification provisoire. 260 * @param taxonNameCreationDt Date de création de l'objet 261 * @param updateDt Date de mise à jour de l'objet 262 * @param taxonStartDt Date de début de validité du taxon 263 * @param taxonEndDt Date de fin de validité du taxon 264 * @return TaxonName 265 */ 266 public Object create( 267 int transform, 268 String taxonNameNm, 269 String taxonNameCompleteNm, 270 Boolean taxonNameIsNaming, 271 String taxonNameCm, 272 Integer taxonNameUpperRk, 273 Boolean taxonNameIsRefer, 274 Boolean taxonNameIsVirtual, 275 Boolean taxonNameObsol, 276 Boolean taxonNameTempor, 277 Date taxonNameCreationDt, 278 Timestamp updateDt, 279 Date taxonStartDt, 280 Date taxonEndDt); 281 282 /** 283 * <p> 284 * Creates a new <code>TaxonName</code> 285 * instance from only <strong>required</strong> properties (attributes 286 * and association ends) and adds it to the persistent store. 287 * </p> 288 * @param updateDt 289 * @param referenceTaxon 290 * @param taxonomicLevel 291 * @return TaxonName 292 */ 293 public TaxonName create( 294 Timestamp updateDt, 295 ReferenceTaxon referenceTaxon, 296 TaxonomicLevel taxonomicLevel); 297 298 /** 299 * <p> 300 * Does the same thing as {@link #create(Timestamp)} with an 301 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 302 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 303 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 304 * transform the entity (into a value object for example). By default, transformation does 305 * not occur. 306 * </p> 307 * @param transform flag to determine transformation type. 308 * @param updateDt 309 * @param referenceTaxon 310 * @param taxonomicLevel 311 * @return Object 312 */ 313 public Object create( 314 int transform, 315 Timestamp updateDt, 316 ReferenceTaxon referenceTaxon, 317 TaxonomicLevel taxonomicLevel); 318 319 /** 320 * Updates the <code>taxonName</code> instance in the persistent store. 321 * @param taxonName 322 */ 323 public void update(TaxonName taxonName); 324 325 /** 326 * Updates all instances in the <code>entities</code> collection in the persistent store. 327 * @param entities 328 */ 329 public void update(Collection<TaxonName> entities); 330 331 /** 332 * Removes the instance of TaxonName from the persistent store. 333 * @param taxonName 334 */ 335 public void remove(TaxonName taxonName); 336 337 /** 338 * Removes the instance of TaxonName having the given 339 * <code>identifier</code> from the persistent store. 340 * @param taxonNameId 341 */ 342 public void remove(Integer taxonNameId); 343 344 /** 345 * Removes all entities in the given <code>entities</code> collection. 346 * @param entities 347 */ 348 public void remove(Collection<TaxonName> entities); 349 350 351 /** 352 * Does the same thing as {@link #search(int, 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 transform the transformation flag. 357 * @param pageNumber the page number in the data to retrieve 358 * @param pageSize the size of the page to retrieve. 359 * @param search the search object which provides the search parameters and pagination specification. 360 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 361 */ 362 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search); 363 364 /** 365 * Does the same thing as {@link #search(Search)} but with an 366 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 367 * limit your data to a specified page number and size. 368 * 369 * @param pageNumber the page number in the data to retrieve 370 * @param pageSize the size of the page to retrieve. 371 * @param search the search object which provides the search parameters and pagination specification. 372 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 373 */ 374 public PaginationResult search(final int pageNumber, final int pageSize, final Search search); 375 376 /** 377 * Does the same thing as {@link #search(Search)} but with an 378 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 379 * finder results will <strong>NOT</strong> be transformed during retrieval. 380 * If this flag is any of the other constants defined here 381 * then results <strong>WILL BE</strong> passed through an operation which can optionally 382 * transform the entities (into value objects for example). By default, transformation does 383 * not occur. 384 * 385 * @param transform the transformation flag. 386 * @param search the search object which provides the search parameters and pagination specification. 387 * @return any found results from the search. 388 */ 389 public Set<?> search(final int transform, final Search search); 390 391 /** 392 * Performs a search using the parameters specified in the given <code>search</code> object. 393 * 394 * @param search the search object which provides the search parameters and pagination specification. 395 * @return any found results from the search. 396 */ 397 public Set<TaxonName> search(final Search search); 398 399 /** 400 * Allows transformation of entities into value objects 401 * (or something else for that matter), when the <code>transform</code> 402 * flag is set to one of the constants defined in <code>fr.ifremer.quadrige2.core.dao.referential.taxon.TaxonNameDao</code>, please note 403 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 404 * will be returned. 405 * 406 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 407 * 408 * @param transform one of the constants declared in {@link fr.ifremer.quadrige2.core.dao.referential.taxon.TaxonNameDao} 409 * @param entity an entity that was found 410 * @return the transformed entity (i.e. new value object, etc) 411 * @see #transformEntities(int,Collection) 412 */ 413 public Object transformEntity(final int transform, final TaxonName entity); 414 415 /** 416 * Transforms a collection of entities using the 417 * {@link #transformEntity(int,TaxonName)} 418 * method. This method does not instantiate a new collection. 419 * <p> 420 * This method is to be used internally only. 421 * 422 * @param transform one of the constants declared in <code>fr.ifremer.quadrige2.core.dao.referential.taxon.TaxonNameDao</code> 423 * @param entities the collection of entities to transform 424 * @see #transformEntity(int,TaxonName) 425 */ 426 public void transformEntities(final int transform, final Collection<?> entities); 427 428 // spring-dao merge-point 429 }