001// license-header java merge-point
002//
003// Attention: Generated code! Do not modify by hand!
004// Generated by: SpringDao.vsl in andromda-spring-cartridge.
005//
006package fr.ifremer.adagio.core.dao.playground;
007
008/*
009 * #%L
010 * SIH-Adagio :: Core
011 * $Id:$
012 * $HeadURL:$
013 * %%
014 * Copyright (C) 2012 - 2014 Ifremer
015 * %%
016 * This program is free software: you can redistribute it and/or modify
017 * it under the terms of the GNU Affero General Public License as published by
018 * the Free Software Foundation, either version 3 of the License, or
019 * (at your option) any later version.
020 * 
021 * This program is distributed in the hope that it will be useful,
022 * but WITHOUT ANY WARRANTY; without even the implied warranty of
023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
024 * GNU General Public License for more details.
025 * 
026 * You should have received a copy of the GNU Affero General Public License
027 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
028 * #L%
029 */
030
031import fr.ifremer.adagio.core.dao.Search;
032import java.util.Collection;
033import java.util.Set;
034import org.andromda.spring.PaginationResult;
035
036/**
037 * Espèce commerciales avec détails spécifique pour la vente en criée.
038 * ref : flux RIC II
039 * TODO : voir dans quelle mesure il est possible d'utiliser TaxonGroup à la place de cette classe
040 * (avec un TaxonGroupType particulier = 'Espèce commerciale RIC II')
041 * @see PlaygroundRicTaxonGroup
042 */
043public interface PlaygroundRicTaxonGroupDao
044{
045    /**
046     * This constant is used as a transformation flag; entities can be converted automatically into value objects
047     * or other types, different methods in a class implementing this interface support this feature: look for
048     * an <code>int</code> parameter called <code>transform</code>.
049     * <p>
050     * This specific flag denotes no transformation will occur.
051     */
052    public static final int TRANSFORM_NONE = 0;
053
054
055    /**
056     * Transforms the given results to a collection of {@link PlaygroundRicTaxonGroup}
057     * instances (this is useful when the returned results contains a row of data and you want just entities only).
058     *
059     * @param results the query results.
060     */
061    public void toEntities(final Collection<?> results);
062
063    /**
064     * Gets an instance of PlaygroundRicTaxonGroup from the persistent store.
065     * @param code
066     * @return PlaygroundRicTaxonGroup
067     */
068    public PlaygroundRicTaxonGroup get(String code);
069
070    /**
071     * <p>
072     * Does the same thing as {@link #get(String)} with an
073     * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
074     * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
075     * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
076     * optionally transform the entity (into a value object for example). By default, transformation does
077     * not occur.
078     * </p>
079     *
080     * @param transform flag to determine transformation type.
081     * @param code the identifier of the entity to get.
082     * @return either the entity or the object transformed from the entity.
083     */
084    public Object get(int transform, String code);
085
086    /**
087     * Loads an instance of PlaygroundRicTaxonGroup from the persistent store.
088     * @param code
089     * @return PlaygroundRicTaxonGroup
090     */
091    public PlaygroundRicTaxonGroup load(String code);
092
093    /**
094     * <p>
095     * Does the same thing as {@link #load(String)} with an
096     * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
097     * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
098     * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can
099     * optionally transform the entity (into a value object for example). By default, transformation does
100     * not occur.
101     * </p>
102     *
103     * @param transform flag to determine transformation type.
104     * @param code the identifier of the entity to load.
105     * @return either the entity or the object transformed from the entity.
106     */
107    public Object load(int transform, String code);
108
109    /**
110     * Loads all entities of type {@link PlaygroundRicTaxonGroup}.
111     *
112     * @return the loaded entities.
113     */
114    public Collection<PlaygroundRicTaxonGroup> loadAll();
115
116    /**
117     * <p>
118     * Does the same thing as {@link #loadAll()} with an
119     * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
120     * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
121     * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
122     * transform the entity (into a value object for example). By default, transformation does
123     * not occur.
124     * </p>
125     *
126     * @param transform the flag indicating what transformation to use.
127     * @return the loaded entities.
128     */
129    public Collection<?> loadAll(final int transform);
130
131    /**
132     * <p>
133     * Does the same thing as {@link #loadAll()} with an
134     * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
135     * 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
136     * page retrieved.
137     * </p>
138     *
139     * @param pageNumber the page number to retrieve when paging results.
140     * @param pageSize the size of the page to retrieve when paging results.
141     * @return the loaded entities.
142     */
143    public Collection<?> loadAll(final int pageNumber, final int pageSize);
144
145    /**
146     * <p>
147     * Does the same thing as {@link #loadAll(int)} with an
148     * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code>
149     * 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
150     * page retrieved.
151     * </p>
152     *
153     * @param transform the flag indicating what transformation to use.
154     * @param pageNumber the page number to retrieve when paging results.
155     * @param pageSize the size of the page to retrieve when paging results.
156     * @return the loaded entities.
157     */
158    public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize);
159
160    /**
161     * Creates an instance of PlaygroundRicTaxonGroup and adds it to the persistent store.
162     * @param playgroundRicTaxonGroup
163     * @return PlaygroundRicTaxonGroup
164     */
165    public PlaygroundRicTaxonGroup create(PlaygroundRicTaxonGroup playgroundRicTaxonGroup);
166
167    /**
168     * <p>
169     * Does the same thing as {@link #create(PlaygroundRicTaxonGroup)} with an
170     * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
171     * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
172     * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
173     * transform the entity (into a value object for example). By default, transformation does
174     * not occur.
175     * </p>
176     * @param transform
177     * @param playgroundRicTaxonGroup
178     * @return Object
179     */
180    public Object create(int transform, PlaygroundRicTaxonGroup playgroundRicTaxonGroup);
181
182    /**
183     * Creates a new instance of PlaygroundRicTaxonGroup and adds
184     * from the passed in <code>entities</code> collection
185     *
186     * @param entities the collection of PlaygroundRicTaxonGroup
187     * instances to create.
188     *
189     * @return the created instances.
190     */
191    public Collection<PlaygroundRicTaxonGroup> create(Collection<PlaygroundRicTaxonGroup> entities);
192
193    /**
194     * <p>
195     * Does the same thing as {@link #create(PlaygroundRicTaxonGroup)} with an
196     * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
197     * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
198     * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
199     * transform the entities (into value objects for example). By default, transformation does
200     * not occur.
201     * </p>
202     * @param transform
203     * @param entities
204     * @return Collection
205     */
206    public Collection<?> create(int transform, Collection<PlaygroundRicTaxonGroup> entities);
207
208    /**
209     * <p>
210     * Creates a new <code>PlaygroundRicTaxonGroup</code>
211     * instance from <strong>all</strong> attributes and adds it to
212     * the persistent store.
213     * </p>
214     * @param code Code de l'espèce RIC
215     * @param name 
216     * @return PlaygroundRicTaxonGroup
217     */
218    public PlaygroundRicTaxonGroup create(
219        String code,
220        String name);
221
222    /**
223     * <p>
224     * Does the same thing as {@link #create(String)} with an
225     * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
226     * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants
227     * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally
228     * transform the entity (into a value object for example). By default, transformation does
229     * not occur.
230     * </p>
231     * @param transform
232     * @param code Code de l'espèce RIC
233     * @param name 
234     * @return PlaygroundRicTaxonGroup
235     */
236    public Object create(
237        int transform,
238        String code,
239        String name);
240
241
242    /**
243     * Updates the <code>playgroundRicTaxonGroup</code> instance in the persistent store.
244     * @param playgroundRicTaxonGroup
245     */
246    public void update(PlaygroundRicTaxonGroup playgroundRicTaxonGroup);
247
248    /**
249     * Updates all instances in the <code>entities</code> collection in the persistent store.
250     * @param entities
251     */
252    public void update(Collection<PlaygroundRicTaxonGroup> entities);
253
254    /**
255     * Removes the instance of PlaygroundRicTaxonGroup from the persistent store.
256     * @param playgroundRicTaxonGroup
257     */
258    public void remove(PlaygroundRicTaxonGroup playgroundRicTaxonGroup);
259
260    /**
261     * Removes the instance of PlaygroundRicTaxonGroup having the given
262     * <code>identifier</code> from the persistent store.
263     * @param code
264     */
265    public void remove(String code);
266
267    /**
268     * Removes all entities in the given <code>entities</code> collection.
269     * @param entities
270     */
271    public void remove(Collection<PlaygroundRicTaxonGroup> entities);
272
273
274    /**
275     * Does the same thing as {@link #search(int, Search)} but with an
276     * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
277     * limit your data to a specified page number and size.
278     *
279     * @param transform the transformation flag.
280     * @param pageNumber the page number in the data to retrieve
281     * @param pageSize the size of the page to retrieve.
282     * @param search the search object which provides the search parameters and pagination specification.
283     * @return any found results from the search wrapped in a {@link PaginationResult} instance.
284     */
285    public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search);
286
287    /**
288     * Does the same thing as {@link #search(Search)} but with an
289     * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to
290     * limit your data to a specified page number and size.
291     *
292     * @param pageNumber the page number in the data to retrieve
293     * @param pageSize the size of the page to retrieve.
294     * @param search the search object which provides the search parameters and pagination specification.
295     * @return any found results from the search wrapped in a {@link PaginationResult} instance.
296     */
297    public PaginationResult search(final int pageNumber, final int pageSize, final Search search);
298
299    /**
300     * Does the same thing as {@link #search(Search)} but with an
301     * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then
302     * finder results will <strong>NOT</strong> be transformed during retrieval.
303     * If this flag is any of the other constants defined here
304     * then results <strong>WILL BE</strong> passed through an operation which can optionally
305     * transform the entities (into value objects for example). By default, transformation does
306     * not occur.
307     *
308     * @param transform the transformation flag.
309     * @param search the search object which provides the search parameters and pagination specification.
310     * @return any found results from the search.
311     */
312    public Set<?> search(final int transform, final Search search);
313
314    /**
315     * Performs a search using the parameters specified in the given <code>search</code> object.
316     *
317     * @param search the search object which provides the search parameters and pagination specification.
318     * @return any found results from the search.
319     */
320    public Set<PlaygroundRicTaxonGroup> search(final Search search);
321
322    /**
323     * Allows transformation of entities into value objects
324     * (or something else for that matter), when the <code>transform</code>
325     * flag is set to one of the constants defined in <code>fr.ifremer.adagio.core.dao.playground.PlaygroundRicTaxonGroupDao</code>, please note
326     * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself
327     * will be returned.
328     *
329     * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed.
330     *
331     * @param transform one of the constants declared in {@link fr.ifremer.adagio.core.dao.playground.PlaygroundRicTaxonGroupDao}
332     * @param entity an entity that was found
333     * @return the transformed entity (i.e. new value object, etc)
334     * @see #transformEntities(int,Collection)
335     */
336    public Object transformEntity(final int transform, final PlaygroundRicTaxonGroup entity);
337
338    /**
339     * Transforms a collection of entities using the
340     * {@link #transformEntity(int,PlaygroundRicTaxonGroup)}
341     * method. This method does not instantiate a new collection.
342     * <p>
343     * This method is to be used internally only.
344     *
345     * @param transform one of the constants declared in <code>fr.ifremer.adagio.core.dao.playground.PlaygroundRicTaxonGroupDao</code>
346     * @param entities the collection of entities to transform
347     * @see #transformEntity(int,PlaygroundRicTaxonGroup)
348     */
349    public void transformEntities(final int transform, final Collection<?> entities);
350
351    // spring-dao merge-point
352}