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 }