View Javadoc
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.data.aquaculture;
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 fr.ifremer.quadrige2.core.dao.referential.QualityFlag;
31  import fr.ifremer.quadrige2.core.dao.referential.taxon.ReferenceTaxon;
32  import java.sql.Timestamp;
33  import java.util.Collection;
34  import java.util.Date;
35  import java.util.Set;
36  import org.andromda.spring.PaginationResult;
37  
38  /**
39   * Pour les données aquacoles de nombreuses études consiste à voir les évolutions de plusieurs
40   * paramètres sur une même population de mollusques répartis en lots sur le littoral français. Cela
41   * permet de comparer les évolutions liées seulement au site. On part d'un ensemble de mollusques,
42   * que l'on appelle population initiale, au niveau national et l'on repartit cet ensemble en lots
43   * sur différents lieux de mesures.
44   * @see InitialPopulation
45   */
46  public interface InitialPopulationDao
47  {
48      /**
49       * This constant is used as a transformation flag; entities can be converted automatically into value objects
50       * or other types, different methods in a class implementing this interface support this feature: look for
51       * an <code>int</code> parameter called <code>transform</code>.
52       * <p>
53       * This specific flag denotes no transformation will occur.
54       */
55      public static final int TRANSFORM_NONE = 0;
56  
57  
58      /**
59       * Transforms the given results to a collection of {@link InitialPopulation}
60       * instances (this is useful when the returned results contains a row of data and you want just entities only).
61       *
62       * @param results the query results.
63       */
64      public void toEntities(final Collection<?> results);
65  
66      /**
67       * Gets an instance of InitialPopulation from the persistent store.
68       * @param initPopId
69       * @return InitialPopulation
70       */
71      public InitialPopulation get(Integer initPopId);
72  
73      /**
74       * <p>
75       * Does the same thing as {@link #get(Integer)} with an
76       * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
77       * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
78       * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
79       * optionally transform the entity (into a value object for example). By default, transformation does
80       * not occur.
81       * </p>
82       *
83       * @param transform flag to determine transformation type.
84       * @param initPopId the identifier of the entity to get.
85       * @return either the entity or the object transformed from the entity.
86       */
87      public Object get(int transform, Integer initPopId);
88  
89      /**
90       * Loads an instance of InitialPopulation from the persistent store.
91       * @param initPopId
92       * @return InitialPopulation
93       */
94      public InitialPopulation load(Integer initPopId);
95  
96      /**
97       * <p>
98       * Does the same thing as {@link #load(Integer)} with an
99       * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
100      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
101      * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
102      * optionally transform the entity (into a value object for example). By default, transformation does
103      * not occur.
104      * </p>
105      *
106      * @param transform flag to determine transformation type.
107      * @param initPopId the identifier of the entity to load.
108      * @return either the entity or the object transformed from the entity.
109      */
110     public Object load(int transform, Integer initPopId);
111 
112     /**
113      * Loads all entities of type {@link InitialPopulation}.
114      *
115      * @return the loaded entities.
116      */
117     public Collection<InitialPopulation> loadAll();
118 
119     /**
120      * <p>
121      * Does the same thing as {@link #loadAll()} with an
122      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
123      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
124      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
125      * transform the entity (into a value object for example). By default, transformation does
126      * not occur.
127      * </p>
128      *
129      * @param transform the flag indicating what transformation to use.
130      * @return the loaded entities.
131      */
132     public Collection<?> loadAll(final int transform);
133 
134     /**
135      * <p>
136      * Does the same thing as {@link #loadAll()} with an
137      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
138      * 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
139      * page retrieved.
140      * </p>
141      *
142      * @param pageNumber the page number to retrieve when paging results.
143      * @param pageSize the size of the page to retrieve when paging results.
144      * @return the loaded entities.
145      */
146     public Collection<?> loadAll(final int pageNumber, final int pageSize);
147 
148     /**
149      * <p>
150      * Does the same thing as {@link #loadAll(int)} with an
151      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
152      * 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
153      * page retrieved.
154      * </p>
155      *
156      * @param transform the flag indicating what transformation to use.
157      * @param pageNumber the page number to retrieve when paging results.
158      * @param pageSize the size of the page to retrieve when paging results.
159      * @return the loaded entities.
160      */
161     public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize);
162 
163     /**
164      * Creates an instance of InitialPopulation and adds it to the persistent store.
165      * @param initialPopulation
166      * @return InitialPopulation
167      */
168     public InitialPopulation create(InitialPopulation initialPopulation);
169 
170     /**
171      * <p>
172      * Does the same thing as {@link #create(InitialPopulation)} with an
173      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
174      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
175      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
176      * transform the entity (into a value object for example). By default, transformation does
177      * not occur.
178      * </p>
179      * @param transform
180      * @param initialPopulation
181      * @return Object
182      */
183     public Object create(int transform, InitialPopulation initialPopulation);
184 
185     /**
186      * Creates a new instance of InitialPopulation and adds
187      * from the passed in <code>entities</code> collection
188      *
189      * @param entities the collection of InitialPopulation
190      * instances to create.
191      *
192      * @return the created instances.
193      */
194     public Collection<InitialPopulation> create(Collection<InitialPopulation> entities);
195 
196     /**
197      * <p>
198      * Does the same thing as {@link #create(InitialPopulation)} with an
199      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
200      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
201      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
202      * transform the entities (into value objects for example). By default, transformation does
203      * not occur.
204      * </p>
205      * @param transform
206      * @param entities
207      * @return Collection
208      */
209     public Collection<?> create(int transform, Collection<InitialPopulation> entities);
210 
211     /**
212      * <p>
213      * Creates a new <code>InitialPopulation</code>
214      * instance from <strong>all</strong> attributes and adds it to
215      * the persistent store.
216      * </p>
217      * @param initPopNm Libellé de la population initiale
218      * @param initPopLb Mnémonique de la population initiale
219      * @param initPopCm Commentaire sur la population initiale
220      * @param initPopQualifDt Date de qualification de la population initiale
221      * @param initPopQualifCm Commentaire de qualification de la population initiale
222      * @param initPopValidDt Date de validation de la population initiale
223      * @param initPopControlDt Date de controle de la population initiale
224      * @param initPopStartDt Date de mise à disposition de la population initiale
225      * @param initPopBiometricIndivNb Nombre d'individus pour les mesures de biométrie
226      * @param updateDt Date de maj
227      * @return InitialPopulation
228      */
229     public InitialPopulation create(
230         String initPopNm,
231         String initPopLb,
232         String initPopCm,
233         Date initPopQualifDt,
234         String initPopQualifCm,
235         Date initPopValidDt,
236         Date initPopControlDt,
237         Date initPopStartDt,
238         Double initPopBiometricIndivNb,
239         Timestamp updateDt);
240 
241     /**
242      * <p>
243      * Does the same thing as {@link #create(String, String, String, Date, String, Date, Date, Date, Double, Timestamp)} 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 initPopNm Libellé de la population initiale
252      * @param initPopLb Mnémonique de la population initiale
253      * @param initPopCm Commentaire sur la population initiale
254      * @param initPopQualifDt Date de qualification de la population initiale
255      * @param initPopQualifCm Commentaire de qualification de la population initiale
256      * @param initPopValidDt Date de validation de la population initiale
257      * @param initPopControlDt Date de controle de la population initiale
258      * @param initPopStartDt Date de mise à disposition de la population initiale
259      * @param initPopBiometricIndivNb Nombre d'individus pour les mesures de biométrie
260      * @param updateDt Date de maj
261      * @return InitialPopulation
262      */
263     public Object create(
264         int transform,
265         String initPopNm,
266         String initPopLb,
267         String initPopCm,
268         Date initPopQualifDt,
269         String initPopQualifCm,
270         Date initPopValidDt,
271         Date initPopControlDt,
272         Date initPopStartDt,
273         Double initPopBiometricIndivNb,
274         Timestamp updateDt);
275 
276     /**
277      * <p>
278      * Creates a new <code>InitialPopulation</code>
279      * instance from only <strong>required</strong> properties (attributes
280      * and association ends) and adds it to the persistent store.
281      * </p>
282      * @param initPopBiometricIndivNb
283      * @param initPopLb
284      * @param initPopNm
285      * @param initPopStartDt
286      * @param updateDt
287      * @param ageGroup
288      * @param qualityFlag
289      * @param referenceTaxon
290      * @return InitialPopulation
291      */
292     public InitialPopulation create(
293         Double initPopBiometricIndivNb,
294         String initPopLb,
295         String initPopNm,
296         Date initPopStartDt,
297         Timestamp updateDt,
298         AgeGroup ageGroup,
299         QualityFlag qualityFlag,
300         ReferenceTaxon referenceTaxon);
301 
302     /**
303      * <p>
304      * Does the same thing as {@link #create(String, String, Date, Double, Timestamp)} with an
305      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
306      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
307      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
308      * transform the entity (into a value object for example). By default, transformation does
309      * not occur.
310      * </p>
311      * @param transform flag to determine transformation type.
312      * @param initPopBiometricIndivNb
313      * @param initPopLb
314      * @param initPopNm
315      * @param initPopStartDt
316      * @param updateDt
317      * @param ageGroup
318      * @param qualityFlag
319      * @param referenceTaxon
320      * @return Object
321      */
322     public Object create(
323         int transform,
324         Double initPopBiometricIndivNb,
325         String initPopLb,
326         String initPopNm,
327         Date initPopStartDt,
328         Timestamp updateDt,
329         AgeGroup ageGroup,
330         QualityFlag qualityFlag,
331         ReferenceTaxon referenceTaxon);
332 
333     /**
334      * Updates the <code>initialPopulation</code> instance in the persistent store.
335      * @param initialPopulation
336      */
337     public void update(InitialPopulation initialPopulation);
338 
339     /**
340      * Updates all instances in the <code>entities</code> collection in the persistent store.
341      * @param entities
342      */
343     public void update(Collection<InitialPopulation> entities);
344 
345     /**
346      * Removes the instance of InitialPopulation from the persistent store.
347      * @param initialPopulation
348      */
349     public void remove(InitialPopulation initialPopulation);
350 
351     /**
352      * Removes the instance of InitialPopulation having the given
353      * <code>identifier</code> from the persistent store.
354      * @param initPopId
355      */
356     public void remove(Integer initPopId);
357 
358     /**
359      * Removes all entities in the given <code>entities</code> collection.
360      * @param entities
361      */
362     public void remove(Collection<InitialPopulation> entities);
363 
364 
365     /**
366      * Does the same thing as {@link #search(int, Search)} but with an
367      * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
368      * limit your data to a specified page number and size.
369      *
370      * @param transform the transformation flag.
371      * @param pageNumber the page number in the data to retrieve
372      * @param pageSize the size of the page to retrieve.
373      * @param search the search object which provides the search parameters and pagination specification.
374      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
375      */
376     public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search);
377 
378     /**
379      * Does the same thing as {@link #search(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 pageNumber the page number in the data to retrieve
384      * @param pageSize the size of the page to retrieve.
385      * @param search the search object which provides the search parameters and pagination specification.
386      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
387      */
388     public PaginationResult search(final int pageNumber, final int pageSize, final Search search);
389 
390     /**
391      * Does the same thing as {@link #search(Search)} but with an
392      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
393      * finder results will <strong>NOT</strong> be transformed during retrieval.
394      * If this flag is any of the other constants defined here
395      * then results <strong>WILL BE</strong> passed through an operation which can optionally
396      * transform the entities (into value objects for example). By default, transformation does
397      * not occur.
398      *
399      * @param transform the transformation flag.
400      * @param search the search object which provides the search parameters and pagination specification.
401      * @return any found results from the search.
402      */
403     public Set<?> search(final int transform, final Search search);
404 
405     /**
406      * Performs a search using the parameters specified in the given <code>search</code> object.
407      *
408      * @param search the search object which provides the search parameters and pagination specification.
409      * @return any found results from the search.
410      */
411     public Set<InitialPopulation> search(final Search search);
412 
413     /**
414      * Allows transformation of entities into value objects
415      * (or something else for that matter), when the <code>transform</code>
416      * flag is set to one of the constants defined in <code>fr.ifremer.quadrige2.core.dao.data.aquaculture.InitialPopulationDao</code>, please note
417      * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself
418      * will be returned.
419      *
420      * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed.
421      *
422      * @param transform one of the constants declared in {@link fr.ifremer.quadrige2.core.dao.data.aquaculture.InitialPopulationDao}
423      * @param entity an entity that was found
424      * @return the transformed entity (i.e. new value object, etc)
425      * @see #transformEntities(int,Collection)
426      */
427     public Object transformEntity(final int transform, final InitialPopulation entity);
428 
429     /**
430      * Transforms a collection of entities using the
431      * {@link #transformEntity(int,InitialPopulation)}
432      * method. This method does not instantiate a new collection.
433      * <p>
434      * This method is to be used internally only.
435      *
436      * @param transform one of the constants declared in <code>fr.ifremer.quadrige2.core.dao.data.aquaculture.InitialPopulationDao</code>
437      * @param entities the collection of entities to transform
438      * @see #transformEntity(int,InitialPopulation)
439      */
440     public void transformEntities(final int transform, final Collection<?> entities);
441 
442     // spring-dao merge-point
443 }