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