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.referential;
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.administration.user.PrivilegeCode;
31  import fr.ifremer.quadrige2.core.vo.administration.user.PrivilegeVO;
32  import java.sql.Timestamp;
33  import java.util.Collection;
34  import java.util.Set;
35  import org.andromda.spring.PaginationResult;
36  
37  /**
38   * Ensemble des privilèges utilisateurs.
39   * @see Privilege
40   */
41  public interface PrivilegeDao
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 Privilege}
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       * This constant is used as a transformation flag; entities can be converted automatically into value objects
63       * or other types, different methods in a class implementing this interface support this feature: look for
64       * an <code>int</code> parameter called <code>transform</code>.
65       * <p>
66       * This specific flag denotes entities must be transformed into objects of type
67       * {@link PrivilegeVO}.
68       */
69      public static final int TRANSFORM_PRIVILEGEVO = 1;
70  
71      /**
72       * Copies the fields of the specified entity to the target value object. This method is similar to
73       * toPrivilegeVO(), but it does not handle any attributes in the target
74       * value object that are "read-only" (as those do not have setter methods exposed).
75       * @param source
76       * @param target
77       */
78      public void toPrivilegeVO(
79          Privilege source,
80          PrivilegeVO target);
81  
82      /**
83       * Converts this DAO's entity to an object of type {@link PrivilegeVO}.
84       * @param entity
85       * @return PrivilegeVO
86       */
87      public PrivilegeVO toPrivilegeVO(Privilege entity);
88  
89      /**
90       * Converts this DAO's entity to a Collection of instances of type {@link PrivilegeVO}.
91       * @param entities
92       */
93      public Collection<PrivilegeVO> toPrivilegeVOCollection(Collection<?> entities);
94  
95      /**
96       * Converts this DAO's entity to an array of instances of type {@link PrivilegeVO}.
97       * @param entities
98       * @return PrivilegeVO[]
99       */
100     public PrivilegeVO[] toPrivilegeVOArray(Collection<?> entities);
101 
102     /**
103      * Copies the fields of {@link PrivilegeVO} to the specified entity.
104      * @param source
105      * @param target
106      * @param copyIfNull If FALSE, the value object's field will not be copied to the entity if the value is NULL. If TRUE,
107      * it will be copied regardless of its value.
108      */
109     public void privilegeVOToEntity(
110         PrivilegeVO source,
111         Privilege target,
112         boolean copyIfNull);
113 
114     /**
115      * Converts an instance of type {@link PrivilegeVO} to this DAO's entity.
116      * @param privilegeVO
117      * @return Privilege
118      */
119     public Privilege privilegeVOToEntity(PrivilegeVO privilegeVO);
120 
121     /**
122      * Converts a Collection of instances of type {@link PrivilegeVO} to this
123      * DAO's entity.
124      * @param instances
125      */
126     public void privilegeVOToEntityCollection(Collection<?> instances);
127 
128     /**
129      * This constant is used as a transformation flag; entities can be converted automatically into value objects
130      * or other types, different methods in a class implementing this interface support this feature: look for
131      * an <code>int</code> parameter called <code>transform</code>.
132      * <p>
133      * This specific flag denotes entities must be transformed into objects of type
134      * {@link PrivilegeCode}.
135      */
136     public static final int TRANSFORM_PRIVILEGECODE = 2;
137 
138     /**
139      * Copies the fields of the specified entity to the target value object. This method is similar to
140      * toPrivilegeCode(), but it does not handle any attributes in the target
141      * value object that are "read-only" (as those do not have setter methods exposed).
142      * @param source
143      * @param target
144      */
145     public void toPrivilegeCode(
146         Privilege source,
147         PrivilegeCode target);
148 
149     /**
150      * Converts this DAO's entity to an object of type {@link PrivilegeCode}.
151      * @param entity
152      * @return PrivilegeCode
153      */
154     public PrivilegeCode toPrivilegeCode(Privilege entity);
155 
156     /**
157      * Converts this DAO's entity to a Collection of instances of type {@link PrivilegeCode}.
158      * @param entities
159      */
160     public Collection<PrivilegeCode> toPrivilegeCodeCollection(Collection<?> entities);
161 
162     /**
163      * Converts this DAO's entity to an array of instances of type {@link PrivilegeCode}.
164      * @param entities
165      * @return PrivilegeCode[]
166      */
167     public PrivilegeCode[] toPrivilegeCodeArray(Collection<?> entities);
168 
169     /**
170      * Copies the fields of {@link PrivilegeCode} to the specified entity.
171      * @param source
172      * @param target
173      * @param copyIfNull If FALSE, the value object's field will not be copied to the entity if the value is NULL. If TRUE,
174      * it will be copied regardless of its value.
175      */
176     public void privilegeCodeToEntity(
177         PrivilegeCode source,
178         Privilege target,
179         boolean copyIfNull);
180 
181     /**
182      * Converts an instance of type {@link PrivilegeCode} to this DAO's entity.
183      * @param privilegeCode
184      * @return Privilege
185      */
186     public Privilege privilegeCodeToEntity(PrivilegeCode privilegeCode);
187 
188     /**
189      * Converts a Collection of instances of type {@link PrivilegeCode} to this
190      * DAO's entity.
191      * @param instances
192      */
193     public void privilegeCodeToEntityCollection(Collection<?> instances);
194 
195     /**
196      * Gets an instance of Privilege from the persistent store.
197      * @param privilegeCd
198      * @return Privilege
199      */
200     public Privilege get(String privilegeCd);
201 
202     /**
203      * <p>
204      * Does the same thing as {@link #get(String)} with an
205      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
206      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
207      * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
208      * optionally transform the entity (into a value object for example). By default, transformation does
209      * not occur.
210      * </p>
211      *
212      * @param transform flag to determine transformation type.
213      * @param privilegeCd the identifier of the entity to get.
214      * @return either the entity or the object transformed from the entity.
215      */
216     public Object get(int transform, String privilegeCd);
217 
218     /**
219      * Loads an instance of Privilege from the persistent store.
220      * @param privilegeCd
221      * @return Privilege
222      */
223     public Privilege load(String privilegeCd);
224 
225     /**
226      * <p>
227      * Does the same thing as {@link #load(String)} with an
228      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
229      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
230      * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
231      * optionally transform the entity (into a value object for example). By default, transformation does
232      * not occur.
233      * </p>
234      *
235      * @param transform flag to determine transformation type.
236      * @param privilegeCd the identifier of the entity to load.
237      * @return either the entity or the object transformed from the entity.
238      */
239     public Object load(int transform, String privilegeCd);
240 
241     /**
242      * Loads all entities of type {@link Privilege}.
243      *
244      * @return the loaded entities.
245      */
246     public Collection<Privilege> loadAll();
247 
248     /**
249      * <p>
250      * Does the same thing as {@link #loadAll()} with an
251      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
252      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
253      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
254      * transform the entity (into a value object for example). By default, transformation does
255      * not occur.
256      * </p>
257      *
258      * @param transform the flag indicating what transformation to use.
259      * @return the loaded entities.
260      */
261     public Collection<?> loadAll(final int transform);
262 
263     /**
264      * <p>
265      * Does the same thing as {@link #loadAll()} with an
266      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
267      * 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
268      * page retrieved.
269      * </p>
270      *
271      * @param pageNumber the page number to retrieve when paging results.
272      * @param pageSize the size of the page to retrieve when paging results.
273      * @return the loaded entities.
274      */
275     public Collection<?> loadAll(final int pageNumber, final int pageSize);
276 
277     /**
278      * <p>
279      * Does the same thing as {@link #loadAll(int)} with an
280      * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
281      * 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
282      * page retrieved.
283      * </p>
284      *
285      * @param transform the flag indicating what transformation to use.
286      * @param pageNumber the page number to retrieve when paging results.
287      * @param pageSize the size of the page to retrieve when paging results.
288      * @return the loaded entities.
289      */
290     public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize);
291 
292     /**
293      * Creates an instance of Privilege and adds it to the persistent store.
294      * @param privilege
295      * @return Privilege
296      */
297     public Privilege create(Privilege privilege);
298 
299     /**
300      * <p>
301      * Does the same thing as {@link #create(Privilege)} with an
302      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
303      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
304      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
305      * transform the entity (into a value object for example). By default, transformation does
306      * not occur.
307      * </p>
308      * @param transform
309      * @param privilege
310      * @return Object
311      */
312     public Object create(int transform, Privilege privilege);
313 
314     /**
315      * Creates a new instance of Privilege and adds
316      * from the passed in <code>entities</code> collection
317      *
318      * @param entities the collection of Privilege
319      * instances to create.
320      *
321      * @return the created instances.
322      */
323     public Collection<Privilege> create(Collection<Privilege> entities);
324 
325     /**
326      * <p>
327      * Does the same thing as {@link #create(Privilege)} with an
328      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
329      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
330      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
331      * transform the entities (into value objects for example). By default, transformation does
332      * not occur.
333      * </p>
334      * @param transform
335      * @param entities
336      * @return Collection
337      */
338     public Collection<?> create(int transform, Collection<Privilege> entities);
339 
340     /**
341      * <p>
342      * Creates a new <code>Privilege</code>
343      * instance from <strong>all</strong> attributes and adds it to
344      * the persistent store.
345      * </p>
346      * @param privilegeNm Llibellé décrivant le profil
347      * @param privilegeDc Description du profil
348      * @param updateDt Date de modification de l'objet, mise à jour par le système
349      * @return Privilege
350      */
351     public Privilege create(
352         String privilegeNm,
353         String privilegeDc,
354         Timestamp updateDt);
355 
356     /**
357      * <p>
358      * Does the same thing as {@link #create(String, String, Timestamp)} with an
359      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
360      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
361      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
362      * transform the entity (into a value object for example). By default, transformation does
363      * not occur.
364      * </p>
365      * @param transform
366      * @param privilegeNm Llibellé décrivant le profil
367      * @param privilegeDc Description du profil
368      * @param updateDt Date de modification de l'objet, mise à jour par le système
369      * @return Privilege
370      */
371     public Object create(
372         int transform,
373         String privilegeNm,
374         String privilegeDc,
375         Timestamp updateDt);
376 
377     /**
378      * <p>
379      * Creates a new <code>Privilege</code>
380      * instance from only <strong>required</strong> properties (attributes
381      * and association ends) and adds it to the persistent store.
382      * </p>
383      * @param privilegeNm
384      * @param updateDt
385      * @param status
386      * @return Privilege
387      */
388     public Privilege create(
389         String privilegeNm,
390         Timestamp updateDt,
391         Status status);
392 
393     /**
394      * <p>
395      * Does the same thing as {@link #create(String, Timestamp)} with an
396      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
397      * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
398      * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
399      * transform the entity (into a value object for example). By default, transformation does
400      * not occur.
401      * </p>
402      * @param transform flag to determine transformation type.
403      * @param privilegeNm
404      * @param updateDt
405      * @param status
406      * @return Object
407      */
408     public Object create(
409         int transform,
410         String privilegeNm,
411         Timestamp updateDt,
412         Status status);
413 
414     /**
415      * Updates the <code>privilege</code> instance in the persistent store.
416      * @param privilege
417      */
418     public void update(Privilege privilege);
419 
420     /**
421      * Updates all instances in the <code>entities</code> collection in the persistent store.
422      * @param entities
423      */
424     public void update(Collection<Privilege> entities);
425 
426     /**
427      * Removes the instance of Privilege from the persistent store.
428      * @param privilege
429      */
430     public void remove(Privilege privilege);
431 
432     /**
433      * Removes the instance of Privilege having the given
434      * <code>identifier</code> from the persistent store.
435      * @param privilegeCd
436      */
437     public void remove(String privilegeCd);
438 
439     /**
440      * Removes all entities in the given <code>entities</code> collection.
441      * @param entities
442      */
443     public void remove(Collection<Privilege> entities);
444 
445 
446     /**
447      * Does the same thing as {@link #search(int, Search)} but with an
448      * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
449      * limit your data to a specified page number and size.
450      *
451      * @param transform the transformation flag.
452      * @param pageNumber the page number in the data to retrieve
453      * @param pageSize the size of the page to retrieve.
454      * @param search the search object which provides the search parameters and pagination specification.
455      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
456      */
457     public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search);
458 
459     /**
460      * Does the same thing as {@link #search(Search)} but with an
461      * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
462      * limit your data to a specified page number and size.
463      *
464      * @param pageNumber the page number in the data to retrieve
465      * @param pageSize the size of the page to retrieve.
466      * @param search the search object which provides the search parameters and pagination specification.
467      * @return any found results from the search wrapped in a {@link PaginationResult} instance.
468      */
469     public PaginationResult search(final int pageNumber, final int pageSize, final Search search);
470 
471     /**
472      * Does the same thing as {@link #search(Search)} but with an
473      * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
474      * finder results will <strong>NOT</strong> be transformed during retrieval.
475      * If this flag is any of the other constants defined here
476      * then results <strong>WILL BE</strong> passed through an operation which can optionally
477      * transform the entities (into value objects for example). By default, transformation does
478      * not occur.
479      *
480      * @param transform the transformation flag.
481      * @param search the search object which provides the search parameters and pagination specification.
482      * @return any found results from the search.
483      */
484     public Set<?> search(final int transform, final Search search);
485 
486     /**
487      * Performs a search using the parameters specified in the given <code>search</code> object.
488      *
489      * @param search the search object which provides the search parameters and pagination specification.
490      * @return any found results from the search.
491      */
492     public Set<Privilege> search(final Search search);
493 
494     /**
495      * Allows transformation of entities into value objects
496      * (or something else for that matter), when the <code>transform</code>
497      * flag is set to one of the constants defined in <code>fr.ifremer.quadrige2.core.dao.referential.PrivilegeDao</code>, please note
498      * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself
499      * will be returned.
500      * <p>
501      * This method will return instances of these types:
502      * <ul>
503      *   <li>{@link Privilege} - {@link #TRANSFORM_NONE}</li>
504      *   <li>{@link PrivilegeVO} - {@link #TRANSFORM_PRIVILEGEVO}</li>
505      *   <li>{@link PrivilegeCode} - {@link #TRANSFORM_PRIVILEGECODE}</li>
506      * </ul>
507      *
508      * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed.
509      *
510      * @param transform one of the constants declared in {@link fr.ifremer.quadrige2.core.dao.referential.PrivilegeDao}
511      * @param entity an entity that was found
512      * @return the transformed entity (i.e. new value object, etc)
513      * @see #transformEntities(int,Collection)
514      */
515     public Object transformEntity(final int transform, final Privilege entity);
516 
517     /**
518      * Transforms a collection of entities using the
519      * {@link #transformEntity(int,Privilege)}
520      * method. This method does not instantiate a new collection.
521      * <p>
522      * This method is to be used internally only.
523      *
524      * @param transform one of the constants declared in <code>fr.ifremer.quadrige2.core.dao.referential.PrivilegeDao</code>
525      * @param entities the collection of entities to transform
526      * @see #transformEntity(int,Privilege)
527      */
528     public void transformEntities(final int transform, final Collection<?> entities);
529 
530     // spring-dao merge-point
531 }