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.quadrige3.core.dao.administration.program;
7   
8   /*-
9    * #%L
10   * Quadrige3 Core :: Client API
11   * %%
12   * Copyright (C) 2017 - 2024 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  import fr.ifremer.quadrige3.core.dao.Search;
29  import java.sql.Timestamp;
30  import java.util.Collection;
31  import java.util.Set;
32  import org.andromda.spring.PaginationResult;
33  
34  /**
35   * types de privilège applicables sur un programme (responsable, consultation intégrale, saisisseur)
36   * @see ProgramPrivilege
37   */
38  public interface ProgramPrivilegeDao
39  {
40      /**
41       * This constant is used as a transformation flag; entities can be converted automatically into value objects
42       * or other types, different methods in a class implementing this interface support this feature: look for
43       * an <code>int</code> parameter called <code>transform</code>.
44       * <p>
45       * This specific flag denotes no transformation will occur.
46       */
47      public static final int TRANSFORM_NONE = 0;
48  
49  
50      /**
51       * Transforms the given results to a collection of {@link ProgramPrivilege}
52       * instances (this is useful when the returned results contains a row of data and you want just entities only).
53       *
54       * @param results the query results.
55       */
56      public void toEntities(final Collection<?> results);
57  
58      /**
59       * This constant is used as a transformation flag; entities can be converted automatically into value objects
60       * or other types, different methods in a class implementing this interface support this feature: look for
61       * an <code>int</code> parameter called <code>transform</code>.
62       * <p>
63       * This specific flag denotes entities must be transformed into objects of type
64       * {@link ProgramPrivilegeIds}.
65       */
66      public static final int TRANSFORM_PROGRAMPRIVILEGEIDS = 1;
67  
68      /**
69       * Copies the fields of the specified entity to the target value object. This method is similar to
70       * toProgramPrivilegeIds(), but it does not handle any attributes in the target
71       * value object that are "read-only" (as those do not have setter methods exposed).
72       * @param source
73       * @param target
74       */
75      public void toProgramPrivilegeIds(
76          ProgramPrivilege source,
77          ProgramPrivilegeIds target);
78  
79      /**
80       * Converts this DAO's entity to an object of type {@link ProgramPrivilegeIds}.
81       * @param entity
82       * @return ProgramPrivilegeIds
83       */
84      public ProgramPrivilegeIds toProgramPrivilegeIds(ProgramPrivilege entity);
85  
86      /**
87       * Converts this DAO's entity to a Collection of instances of type {@link ProgramPrivilegeIds}.
88       * @param entities
89       */
90      public Collection<ProgramPrivilegeIds> toProgramPrivilegeIdsCollection(Collection<?> entities);
91  
92      /**
93       * Converts this DAO's entity to an array of instances of type {@link ProgramPrivilegeIds}.
94       * @param entities
95       * @return ProgramPrivilegeIds[]
96       */
97      public ProgramPrivilegeIds[] toProgramPrivilegeIdsArray(Collection<?> entities);
98  
99      /**
100      * Copies the fields of {@link ProgramPrivilegeIds} to the specified entity.
101      * @param source
102      * @param target
103      * @param copyIfNull If FALSE, the value object's field will not be copied to the entity if the value is NULL. If TRUE,
104      * it will be copied regardless of its value.
105      */
106     public void programPrivilegeIdsToEntity(
107         ProgramPrivilegeIds source,
108         ProgramPrivilege target,
109         boolean copyIfNull);
110 
111     /**
112      * Converts an instance of type {@link ProgramPrivilegeIds} to this DAO's entity.
113      * @param programPrivilegeIds
114      * @return ProgramPrivilege
115      */
116     public ProgramPrivilege programPrivilegeIdsToEntity(ProgramPrivilegeIds programPrivilegeIds);
117 
118     /**
119      * Converts a Collection of instances of type {@link ProgramPrivilegeIds} to this
120      * DAO's entity.
121      * @param instances
122      */
123     public void programPrivilegeIdsToEntityCollection(Collection<?> instances);
124 
125     /**
126      * Gets an instance of ProgramPrivilege from the persistent store.
127      * @param progPrivId
128      * @return ProgramPrivilege
129      */
130     public ProgramPrivilege get(Integer progPrivId);
131 
132     /**
133      * <p>
134      * Does the same thing as {@link #get(Integer)} with an
135      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
136      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
137      * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
138      * optionally transform the entity (into a value object for example). By default, transformation does
139      * not occur.
140      * </p>
141      *
142      * @param transform flag to determine transformation type.
143      * @param progPrivId the identifier of the entity to get.
144      * @return either the entity or the object transformed from the entity.
145      */
146     public Object get(int transform, Integer progPrivId);
147 
148     /**
149      * Loads an instance of ProgramPrivilege from the persistent store.
150      * @param progPrivId
151      * @return ProgramPrivilege
152      */
153     public ProgramPrivilege load(Integer progPrivId);
154 
155     /**
156      * <p>
157      * Does the same thing as {@link #load(Integer)} with an
158      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
159      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
160      * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
161      * optionally transform the entity (into a value object for example). By default, transformation does
162      * not occur.
163      * </p>
164      *
165      * @param transform flag to determine transformation type.
166      * @param progPrivId the identifier of the entity to load.
167      * @return either the entity or the object transformed from the entity.
168      */
169     public Object load(int transform, Integer progPrivId);
170 
171     /**
172      * Loads all entities of type {@link ProgramPrivilege}.
173      *
174      * @return the loaded entities.
175      */
176     public Collection<ProgramPrivilege> loadAll();
177 
178     /**
179      * <p>
180      * Does the same thing as {@link #loadAll()} with an
181      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
182      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
183      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
184      * transform the entity (into a value object for example). By default, transformation does
185      * not occur.
186      * </p>
187      *
188      * @param transform the flag indicating what transformation to use.
189      * @return the loaded entities.
190      */
191     public Collection<?> loadAll(final int transform);
192 
193     /**
194      * <p>
195      * Does the same thing as {@link #loadAll()} with an
196      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
197      * 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
198      * page retrieved.
199      * </p>
200      *
201      * @param pageNumber the page number to retrieve when paging results.
202      * @param pageSize the size of the page to retrieve when paging results.
203      * @return the loaded entities.
204      */
205     public Collection<?> loadAll(final int pageNumber, final int pageSize);
206 
207     /**
208      * <p>
209      * Does the same thing as {@link #loadAll(int)} with an
210      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
211      * 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
212      * page retrieved.
213      * </p>
214      *
215      * @param transform the flag indicating what transformation to use.
216      * @param pageNumber the page number to retrieve when paging results.
217      * @param pageSize the size of the page to retrieve when paging results.
218      * @return the loaded entities.
219      */
220     public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize);
221 
222     /**
223      * Creates an instance of ProgramPrivilege and adds it to the persistent store.
224      * @param programPrivilege
225      * @return ProgramPrivilege
226      */
227     public ProgramPrivilege create(ProgramPrivilege programPrivilege);
228 
229     /**
230      * <p>
231      * Does the same thing as {@link #create(ProgramPrivilege)} with an
232      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
233      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
234      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
235      * transform the entity (into a value object for example). By default, transformation does
236      * not occur.
237      * </p>
238      * @param transform
239      * @param programPrivilege
240      * @return Object
241      */
242     public Object create(int transform, ProgramPrivilege programPrivilege);
243 
244     /**
245      * Creates a new instance of ProgramPrivilege and adds
246      * from the passed in <code>entities</code> collection
247      *
248      * @param entities the collection of ProgramPrivilege
249      * instances to create.
250      *
251      * @return the created instances.
252      */
253     public Collection<ProgramPrivilege> create(Collection<ProgramPrivilege> entities);
254 
255     /**
256      * <p>
257      * Does the same thing as {@link #create(ProgramPrivilege)} with an
258      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
259      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
260      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
261      * transform the entities (into value objects for example). By default, transformation does
262      * not occur.
263      * </p>
264      * @param transform
265      * @param entities
266      * @return Collection
267      */
268     public Collection<?> create(int transform, Collection<ProgramPrivilege> entities);
269 
270     /**
271      * <p>
272      * Creates a new <code>ProgramPrivilege</code>
273      * instance from <strong>all</strong> attributes and adds it to
274      * the persistent store.
275      * </p>
276      * @param progPrivNm Libellé du privilège
277      * @param progPrivDc Description du privilège
278      * @param updateDt Date de modification de l'objet, mise à jour par le système
279      * @return ProgramPrivilege
280      */
281     public ProgramPrivilege create(
282         String progPrivNm,
283         String progPrivDc,
284         Timestamp updateDt);
285 
286     /**
287      * <p>
288      * Does the same thing as {@link #create(String, String, Timestamp)} with an
289      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
290      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
291      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
292      * transform the entity (into a value object for example). By default, transformation does
293      * not occur.
294      * </p>
295      * @param transform
296      * @param progPrivNm Libellé du privilège
297      * @param progPrivDc Description du privilège
298      * @param updateDt Date de modification de l'objet, mise à jour par le système
299      * @return ProgramPrivilege
300      */
301     public Object create(
302         int transform,
303         String progPrivNm,
304         String progPrivDc,
305         Timestamp updateDt);
306 
307 
308     /**
309      * Updates the <code>programPrivilege</code> instance in the persistent store.
310      * @param programPrivilege
311      */
312     public void update(ProgramPrivilege programPrivilege);
313 
314     /**
315      * Updates all instances in the <code>entities</code> collection in the persistent store.
316      * @param entities
317      */
318     public void update(Collection<ProgramPrivilege> entities);
319 
320     /**
321      * Removes the instance of ProgramPrivilege from the persistent store.
322      * @param programPrivilege
323      */
324     public void remove(ProgramPrivilege programPrivilege);
325 
326     /**
327      * Removes the instance of ProgramPrivilege having the given
328      * <code>identifier</code> from the persistent store.
329      * @param progPrivId
330      */
331     public void remove(Integer progPrivId);
332 
333     /**
334      * Removes all entities in the given <code>entities</code> collection.
335      * @param entities
336      */
337     public void remove(Collection<ProgramPrivilege> entities);
338 
339 
340     /**
341      * Does the same thing as {@link #search(int, Search)} but with an
342      * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
343      * limit your data to a specified page number and size.
344      *
345      * @param transform the transformation flag.
346      * @param pageNumber the page number in the data to retrieve
347      * @param pageSize the size of the page to retrieve.
348      * @param search the search object which provides the search parameters and pagination specification.
349      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
350      */
351     public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search);
352 
353     /**
354      * Does the same thing as {@link #search(Search)} but with an
355      * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
356      * limit your data to a specified page number and size.
357      *
358      * @param pageNumber the page number in the data to retrieve
359      * @param pageSize the size of the page to retrieve.
360      * @param search the search object which provides the search parameters and pagination specification.
361      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
362      */
363     public PaginationResult search(final int pageNumber, final int pageSize, final Search search);
364 
365     /**
366      * Does the same thing as {@link #search(Search)} but with an
367      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
368      * finder results will <strong>NOT</strong> be transformed during retrieval.
369      * If this flag is any of the other constants defined here
370      * then results <strong>WILL BE</strong> passed through an operation which can optionally
371      * transform the entities (into value objects for example). By default, transformation does
372      * not occur.
373      *
374      * @param transform the transformation flag.
375      * @param search the search object which provides the search parameters and pagination specification.
376      * @return any found results from the search.
377      */
378     public Set<?> search(final int transform, final Search search);
379 
380     /**
381      * Performs a search using the parameters specified in the given <code>search</code> object.
382      *
383      * @param search the search object which provides the search parameters and pagination specification.
384      * @return any found results from the search.
385      */
386     public Set<ProgramPrivilege> search(final Search search);
387 
388     /**
389      * Allows transformation of entities into value objects
390      * (or something else for that matter), when the <code>transform</code>
391      * flag is set to one of the constants defined in <code>fr.ifremer.quadrige3.core.dao.administration.program.ProgramPrivilegeDao</code>, please note
392      * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself
393      * will be returned.
394      * <p>
395      * This method will return instances of these types:
396      * <ul>
397      *   <li>{@link ProgramPrivilege} - {@link #TRANSFORM_NONE}</li>
398      *   <li>{@link ProgramPrivilegeIds} - {@link #TRANSFORM_PROGRAMPRIVILEGEIDS}</li>
399      * </ul>
400      *
401      * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed.
402      *
403      * @param transform one of the constants declared in {@link fr.ifremer.quadrige3.core.dao.administration.program.ProgramPrivilegeDao}
404      * @param entity an entity that was found
405      * @return the transformed entity (i.e. new value object, etc)
406      * @see #transformEntities(int,Collection)
407      */
408     public Object transformEntity(final int transform, final ProgramPrivilege entity);
409 
410     /**
411      * Transforms a collection of entities using the
412      * {@link #transformEntity(int,ProgramPrivilege)}
413      * method. This method does not instantiate a new collection.
414      * <p>
415      * This method is to be used internally only.
416      *
417      * @param transform one of the constants declared in <code>fr.ifremer.quadrige3.core.dao.administration.program.ProgramPrivilegeDao</code>
418      * @param entities the collection of entities to transform
419      * @see #transformEntity(int,ProgramPrivilege)
420      */
421     public void transformEntities(final int transform, final Collection<?> entities);
422 
423     // spring-dao merge-point
424 }