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.system;
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.util.Collection;
31  import java.util.Date;
32  import java.util.Set;
33  import org.andromda.spring.PaginationResult;
34  
35  /**
36   * Rapport des fiches d'anomalies et d'évolutions gérées dans l'outil Mantis.
37   * Cette table constitue la base des outils de présentation et de synthèse des demandes pour la
38   * cellule d'administration de Quadrige
39   * @see BugReport
40   */
41  public interface BugReportDao
42  {
43      /**
44       * This constant is used as a transformation flag; entities can be converted automatically into value objects
45       * or other types, different methods in a class implementing this interface support this feature: look for
46       * an <code>int</code> parameter called <code>transform</code>.
47       * <p>
48       * This specific flag denotes no transformation will occur.
49       */
50      public static final int TRANSFORM_NONE = 0;
51  
52  
53      /**
54       * Transforms the given results to a collection of {@link BugReport}
55       * instances (this is useful when the returned results contains a row of data and you want just entities only).
56       *
57       * @param results the query results.
58       */
59      public void toEntities(final Collection<?> results);
60  
61      /**
62       * Gets an instance of BugReport from the persistent store.
63       * @param bugId
64       * @return BugReport
65       */
66      public BugReport get(Integer bugId);
67  
68      /**
69       * <p>
70       * Does the same thing as {@link #get(Integer)} with an
71       * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
72       * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
73       * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
74       * optionally transform the entity (into a value object for example). By default, transformation does
75       * not occur.
76       * </p>
77       *
78       * @param transform flag to determine transformation type.
79       * @param bugId the identifier of the entity to get.
80       * @return either the entity or the object transformed from the entity.
81       */
82      public Object get(int transform, Integer bugId);
83  
84      /**
85       * Loads an instance of BugReport from the persistent store.
86       * @param bugId
87       * @return BugReport
88       */
89      public BugReport load(Integer bugId);
90  
91      /**
92       * <p>
93       * Does the same thing as {@link #load(Integer)} with an
94       * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
95       * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
96       * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
97       * optionally transform the entity (into a value object for example). By default, transformation does
98       * not occur.
99       * </p>
100      *
101      * @param transform flag to determine transformation type.
102      * @param bugId the identifier of the entity to load.
103      * @return either the entity or the object transformed from the entity.
104      */
105     public Object load(int transform, Integer bugId);
106 
107     /**
108      * Loads all entities of type {@link BugReport}.
109      *
110      * @return the loaded entities.
111      */
112     public Collection<BugReport> loadAll();
113 
114     /**
115      * <p>
116      * Does the same thing as {@link #loadAll()} with an
117      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
118      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
119      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
120      * transform the entity (into a value object for example). By default, transformation does
121      * not occur.
122      * </p>
123      *
124      * @param transform the flag indicating what transformation to use.
125      * @return the loaded entities.
126      */
127     public Collection<?> loadAll(final int transform);
128 
129     /**
130      * <p>
131      * Does the same thing as {@link #loadAll()} with an
132      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
133      * 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
134      * page retrieved.
135      * </p>
136      *
137      * @param pageNumber the page number to retrieve when paging results.
138      * @param pageSize the size of the page to retrieve when paging results.
139      * @return the loaded entities.
140      */
141     public Collection<?> loadAll(final int pageNumber, final int pageSize);
142 
143     /**
144      * <p>
145      * Does the same thing as {@link #loadAll(int)} with an
146      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
147      * 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
148      * page retrieved.
149      * </p>
150      *
151      * @param transform the flag indicating what transformation to use.
152      * @param pageNumber the page number to retrieve when paging results.
153      * @param pageSize the size of the page to retrieve when paging results.
154      * @return the loaded entities.
155      */
156     public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize);
157 
158     /**
159      * Creates an instance of BugReport and adds it to the persistent store.
160      * @param bugReport
161      * @return BugReport
162      */
163     public BugReport create(BugReport bugReport);
164 
165     /**
166      * <p>
167      * Does the same thing as {@link #create(BugReport)} with an
168      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
169      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
170      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
171      * transform the entity (into a value object for example). By default, transformation does
172      * not occur.
173      * </p>
174      * @param transform
175      * @param bugReport
176      * @return Object
177      */
178     public Object create(int transform, BugReport bugReport);
179 
180     /**
181      * Creates a new instance of BugReport and adds
182      * from the passed in <code>entities</code> collection
183      *
184      * @param entities the collection of BugReport
185      * instances to create.
186      *
187      * @return the created instances.
188      */
189     public Collection<BugReport> create(Collection<BugReport> entities);
190 
191     /**
192      * <p>
193      * Does the same thing as {@link #create(BugReport)} with an
194      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
195      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
196      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
197      * transform the entities (into value objects for example). By default, transformation does
198      * not occur.
199      * </p>
200      * @param transform
201      * @param entities
202      * @return Collection
203      */
204     public Collection<?> create(int transform, Collection<BugReport> entities);
205 
206     /**
207      * <p>
208      * Creates a new <code>BugReport</code>
209      * instance from <strong>all</strong> attributes and adds it to
210      * the persistent store.
211      * </p>
212      * @param bugSummary Résumé de la fiche
213      * @param bugDescription Description de la fiche
214      * @param bugReporterName Nom du rapporteur
215      * @param bugStatus Etat de la fiche
216      * @param bugCategory Catégorie de la fiche (anomalie ou évolution)
217      * @param bugPriority Priorité de la fiche
218      * @param bugSeverity Sévérité de la fiche
219      * @param bugSubmittedDate Date de soumission de la fiche
220      * @param bugUpdatedDate Date de mise à jour de la fiche
221      * @param bugWishedDate Date souhaitée pour la mise en oeuvre de la fiche
222      * @param bugClosedDate Date de fermeture de la fiche
223      * @param bugProductVersion Version du produit sur laquelle la fiche a été établie
224      * @param bugFixedVersion Version du produit sur laquelle la fiche a été réalisée
225      * @return BugReport
226      */
227     public BugReport create(
228         String bugSummary,
229         String bugDescription,
230         String bugReporterName,
231         String bugStatus,
232         String bugCategory,
233         String bugPriority,
234         String bugSeverity,
235         Date bugSubmittedDate,
236         Date bugUpdatedDate,
237         Date bugWishedDate,
238         Date bugClosedDate,
239         String bugProductVersion,
240         String bugFixedVersion);
241 
242     /**
243      * <p>
244      * Does the same thing as {@link #create(String, String, String, String, String, String, String, Date, Date, Date, Date, String, String)} with an
245      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
246      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
247      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
248      * transform the entity (into a value object for example). By default, transformation does
249      * not occur.
250      * </p>
251      * @param transform
252      * @param bugSummary Résumé de la fiche
253      * @param bugDescription Description de la fiche
254      * @param bugReporterName Nom du rapporteur
255      * @param bugStatus Etat de la fiche
256      * @param bugCategory Catégorie de la fiche (anomalie ou évolution)
257      * @param bugPriority Priorité de la fiche
258      * @param bugSeverity Sévérité de la fiche
259      * @param bugSubmittedDate Date de soumission de la fiche
260      * @param bugUpdatedDate Date de mise à jour de la fiche
261      * @param bugWishedDate Date souhaitée pour la mise en oeuvre de la fiche
262      * @param bugClosedDate Date de fermeture de la fiche
263      * @param bugProductVersion Version du produit sur laquelle la fiche a été établie
264      * @param bugFixedVersion Version du produit sur laquelle la fiche a été réalisée
265      * @return BugReport
266      */
267     public Object create(
268         int transform,
269         String bugSummary,
270         String bugDescription,
271         String bugReporterName,
272         String bugStatus,
273         String bugCategory,
274         String bugPriority,
275         String bugSeverity,
276         Date bugSubmittedDate,
277         Date bugUpdatedDate,
278         Date bugWishedDate,
279         Date bugClosedDate,
280         String bugProductVersion,
281         String bugFixedVersion);
282 
283 
284     /**
285      * Updates the <code>bugReport</code> instance in the persistent store.
286      * @param bugReport
287      */
288     public void update(BugReport bugReport);
289 
290     /**
291      * Updates all instances in the <code>entities</code> collection in the persistent store.
292      * @param entities
293      */
294     public void update(Collection<BugReport> entities);
295 
296     /**
297      * Removes the instance of BugReport from the persistent store.
298      * @param bugReport
299      */
300     public void remove(BugReport bugReport);
301 
302     /**
303      * Removes the instance of BugReport having the given
304      * <code>identifier</code> from the persistent store.
305      * @param bugId
306      */
307     public void remove(Integer bugId);
308 
309     /**
310      * Removes all entities in the given <code>entities</code> collection.
311      * @param entities
312      */
313     public void remove(Collection<BugReport> entities);
314 
315 
316     /**
317      * Does the same thing as {@link #search(int, Search)} but with an
318      * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
319      * limit your data to a specified page number and size.
320      *
321      * @param transform the transformation flag.
322      * @param pageNumber the page number in the data to retrieve
323      * @param pageSize the size of the page to retrieve.
324      * @param search the search object which provides the search parameters and pagination specification.
325      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
326      */
327     public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search);
328 
329     /**
330      * Does the same thing as {@link #search(Search)} but with an
331      * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
332      * limit your data to a specified page number and size.
333      *
334      * @param pageNumber the page number in the data to retrieve
335      * @param pageSize the size of the page to retrieve.
336      * @param search the search object which provides the search parameters and pagination specification.
337      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
338      */
339     public PaginationResult search(final int pageNumber, final int pageSize, final Search search);
340 
341     /**
342      * Does the same thing as {@link #search(Search)} but with an
343      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
344      * finder results will <strong>NOT</strong> be transformed during retrieval.
345      * If this flag is any of the other constants defined here
346      * then results <strong>WILL BE</strong> passed through an operation which can optionally
347      * transform the entities (into value objects for example). By default, transformation does
348      * not occur.
349      *
350      * @param transform the transformation flag.
351      * @param search the search object which provides the search parameters and pagination specification.
352      * @return any found results from the search.
353      */
354     public Set<?> search(final int transform, final Search search);
355 
356     /**
357      * Performs a search using the parameters specified in the given <code>search</code> object.
358      *
359      * @param search the search object which provides the search parameters and pagination specification.
360      * @return any found results from the search.
361      */
362     public Set<BugReport> search(final Search search);
363 
364     /**
365      * Allows transformation of entities into value objects
366      * (or something else for that matter), when the <code>transform</code>
367      * flag is set to one of the constants defined in <code>fr.ifremer.quadrige2.core.dao.system.BugReportDao</code>, please note
368      * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself
369      * will be returned.
370      *
371      * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed.
372      *
373      * @param transform one of the constants declared in {@link fr.ifremer.quadrige2.core.dao.system.BugReportDao}
374      * @param entity an entity that was found
375      * @return the transformed entity (i.e. new value object, etc)
376      * @see #transformEntities(int,Collection)
377      */
378     public Object transformEntity(final int transform, final BugReport entity);
379 
380     /**
381      * Transforms a collection of entities using the
382      * {@link #transformEntity(int,BugReport)}
383      * method. This method does not instantiate a new collection.
384      * <p>
385      * This method is to be used internally only.
386      *
387      * @param transform one of the constants declared in <code>fr.ifremer.quadrige2.core.dao.system.BugReportDao</code>
388      * @param entities the collection of entities to transform
389      * @see #transformEntity(int,BugReport)
390      */
391     public void transformEntities(final int transform, final Collection<?> entities);
392 
393     // spring-dao merge-point
394 }