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.data.survey; 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 fr.ifremer.quadrige3.core.dao.administration.user.Department; 30 import fr.ifremer.quadrige3.core.dao.referential.ObservationTypology; 31 import fr.ifremer.quadrige3.core.dao.referential.QualityFlag; 32 import java.sql.Timestamp; 33 import java.util.Collection; 34 import java.util.Date; 35 import java.util.Set; 36 import org.andromda.spring.PaginationResult; 37 38 /** 39 * Liste des observations terrain 40 * @see FieldObservation 41 */ 42 public interface FieldObservationDao 43 { 44 /** 45 * This constant is used as a transformation flag; entities can be converted automatically into value objects 46 * or other types, different methods in a class implementing this interface support this feature: look for 47 * an <code>int</code> parameter called <code>transform</code>. 48 * <p> 49 * This specific flag denotes no transformation will occur. 50 */ 51 public static final int TRANSFORM_NONE = 0; 52 53 54 /** 55 * Transforms the given results to a collection of {@link FieldObservation} 56 * instances (this is useful when the returned results contains a row of data and you want just entities only). 57 * 58 * @param results the query results. 59 */ 60 public void toEntities(final Collection<?> results); 61 62 /** 63 * Gets an instance of FieldObservation from the persistent store. 64 * @param fieldObservId 65 * @return FieldObservation 66 */ 67 public FieldObservation get(Integer fieldObservId); 68 69 /** 70 * <p> 71 * Does the same thing as {@link #get(Integer)} with an 72 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 73 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 74 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 75 * optionally transform the entity (into a value object for example). By default, transformation does 76 * not occur. 77 * </p> 78 * 79 * @param transform flag to determine transformation type. 80 * @param fieldObservId the identifier of the entity to get. 81 * @return either the entity or the object transformed from the entity. 82 */ 83 public Object get(int transform, Integer fieldObservId); 84 85 /** 86 * Loads an instance of FieldObservation from the persistent store. 87 * @param fieldObservId 88 * @return FieldObservation 89 */ 90 public FieldObservation load(Integer fieldObservId); 91 92 /** 93 * <p> 94 * Does the same thing as {@link #load(Integer)} with an 95 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 96 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 97 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 98 * optionally transform the entity (into a value object for example). By default, transformation does 99 * not occur. 100 * </p> 101 * 102 * @param transform flag to determine transformation type. 103 * @param fieldObservId the identifier of the entity to load. 104 * @return either the entity or the object transformed from the entity. 105 */ 106 public Object load(int transform, Integer fieldObservId); 107 108 /** 109 * Loads all entities of type {@link FieldObservation}. 110 * 111 * @return the loaded entities. 112 */ 113 public Collection<FieldObservation> loadAll(); 114 115 /** 116 * <p> 117 * Does the same thing as {@link #loadAll()} with an 118 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 119 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 120 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 121 * transform the entity (into a value object for example). By default, transformation does 122 * not occur. 123 * </p> 124 * 125 * @param transform the flag indicating what transformation to use. 126 * @return the loaded entities. 127 */ 128 public Collection<?> loadAll(final int transform); 129 130 /** 131 * <p> 132 * Does the same thing as {@link #loadAll()} with an 133 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 134 * 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 135 * page retrieved. 136 * </p> 137 * 138 * @param pageNumber the page number to retrieve when paging results. 139 * @param pageSize the size of the page to retrieve when paging results. 140 * @return the loaded entities. 141 */ 142 public Collection<?> loadAll(final int pageNumber, final int pageSize); 143 144 /** 145 * <p> 146 * Does the same thing as {@link #loadAll(int)} with an 147 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 148 * 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 149 * page retrieved. 150 * </p> 151 * 152 * @param transform the flag indicating what transformation to use. 153 * @param pageNumber the page number to retrieve when paging results. 154 * @param pageSize the size of the page to retrieve when paging results. 155 * @return the loaded entities. 156 */ 157 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize); 158 159 /** 160 * Creates an instance of FieldObservation and adds it to the persistent store. 161 * @param fieldObservation 162 * @return FieldObservation 163 */ 164 public FieldObservation create(FieldObservation fieldObservation); 165 166 /** 167 * <p> 168 * Does the same thing as {@link #create(FieldObservation)} with an 169 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 170 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 171 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 172 * transform the entity (into a value object for example). By default, transformation does 173 * not occur. 174 * </p> 175 * @param transform 176 * @param fieldObservation 177 * @return Object 178 */ 179 public Object create(int transform, FieldObservation fieldObservation); 180 181 /** 182 * Creates a new instance of FieldObservation and adds 183 * from the passed in <code>entities</code> collection 184 * 185 * @param entities the collection of FieldObservation 186 * instances to create. 187 * 188 * @return the created instances. 189 */ 190 public Collection<FieldObservation> create(Collection<FieldObservation> entities); 191 192 /** 193 * <p> 194 * Does the same thing as {@link #create(FieldObservation)} with an 195 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 196 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 197 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 198 * transform the entities (into value objects for example). By default, transformation does 199 * not occur. 200 * </p> 201 * @param transform 202 * @param entities 203 * @return Collection 204 */ 205 public Collection<?> create(int transform, Collection<FieldObservation> entities); 206 207 /** 208 * <p> 209 * Creates a new <code>FieldObservation</code> 210 * instance from <strong>all</strong> attributes and adds it to 211 * the persistent store. 212 * </p> 213 * @param fieldObservNm Libellé de l'observation terrain. 214 Un résumé succint ou un titre 215 * @param fieldObservCm Texte libre décrivant l'observation effectuée sur le terrain. 216 * @param fieldObservValidDt Date de validation de la donnée 217 * @param fieldObservQualifDt Date de qualification de la données 218 * @param fieldObservQualifCm Commentaire sur la qualification du passage 219 D'une façon générale, il faut vérifier que les données de controle, qualification et validation, 220 dates ou commentaires sont bien du ressort de la classe courante et ne doivent pas être gérées dans 221 une super classe de type métadonnées, et plus particulièrement dans ce cas avec les données 222 géométriques et la norme ISO 19115. 223 * @param updateDt Date de modification de l'objet, mise à jour par le système 224 * @param remoteId 225 * @return FieldObservation 226 */ 227 public FieldObservation create( 228 String fieldObservNm, 229 String fieldObservCm, 230 Date fieldObservValidDt, 231 Date fieldObservQualifDt, 232 String fieldObservQualifCm, 233 Timestamp updateDt, 234 Integer remoteId); 235 236 /** 237 * <p> 238 * Does the same thing as {@link #create(String, String, Date, Date, String, Timestamp, Integer)} with an 239 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 240 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 241 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 242 * transform the entity (into a value object for example). By default, transformation does 243 * not occur. 244 * </p> 245 * @param transform 246 * @param fieldObservNm Libellé de l'observation terrain. 247 Un résumé succint ou un titre 248 * @param fieldObservCm Texte libre décrivant l'observation effectuée sur le terrain. 249 * @param fieldObservValidDt Date de validation de la donnée 250 * @param fieldObservQualifDt Date de qualification de la données 251 * @param fieldObservQualifCm Commentaire sur la qualification du passage 252 D'une façon générale, il faut vérifier que les données de controle, qualification et validation, 253 dates ou commentaires sont bien du ressort de la classe courante et ne doivent pas être gérées dans 254 une super classe de type métadonnées, et plus particulièrement dans ce cas avec les données 255 géométriques et la norme ISO 19115. 256 * @param updateDt Date de modification de l'objet, mise à jour par le système 257 * @param remoteId 258 * @return FieldObservation 259 */ 260 public Object create( 261 int transform, 262 String fieldObservNm, 263 String fieldObservCm, 264 Date fieldObservValidDt, 265 Date fieldObservQualifDt, 266 String fieldObservQualifCm, 267 Timestamp updateDt, 268 Integer remoteId); 269 270 /** 271 * <p> 272 * Creates a new <code>FieldObservation</code> 273 * instance from only <strong>required</strong> properties (attributes 274 * and association ends) and adds it to the persistent store. 275 * </p> 276 * @param observationTypology 277 * @param qualityFlag 278 * @param recorderDepartment 279 * @param survey 280 * @return FieldObservation 281 */ 282 public FieldObservation create( 283 ObservationTypology observationTypology, 284 QualityFlag qualityFlag, 285 Department recorderDepartment, 286 Survey survey); 287 288 /** 289 * <p> 290 * Does the same thing as {@link #create()} with an 291 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 292 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 293 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 294 * transform the entity (into a value object for example). By default, transformation does 295 * not occur. 296 * </p> 297 * @param transform flag to determine transformation type. 298 * @param observationTypology 299 * @param qualityFlag 300 * @param recorderDepartment 301 * @param survey 302 * @return Object 303 */ 304 public Object create( 305 int transform, 306 ObservationTypology observationTypology, 307 QualityFlag qualityFlag, 308 Department recorderDepartment, 309 Survey survey); 310 311 /** 312 * Updates the <code>fieldObservation</code> instance in the persistent store. 313 * @param fieldObservation 314 */ 315 public void update(FieldObservation fieldObservation); 316 317 /** 318 * Updates all instances in the <code>entities</code> collection in the persistent store. 319 * @param entities 320 */ 321 public void update(Collection<FieldObservation> entities); 322 323 /** 324 * Removes the instance of FieldObservation from the persistent store. 325 * @param fieldObservation 326 */ 327 public void remove(FieldObservation fieldObservation); 328 329 /** 330 * Removes the instance of FieldObservation having the given 331 * <code>identifier</code> from the persistent store. 332 * @param fieldObservId 333 */ 334 public void remove(Integer fieldObservId); 335 336 /** 337 * Removes all entities in the given <code>entities</code> collection. 338 * @param entities 339 */ 340 public void remove(Collection<FieldObservation> entities); 341 342 343 /** 344 * Does the same thing as {@link #search(int, Search)} but with an 345 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 346 * limit your data to a specified page number and size. 347 * 348 * @param transform the transformation flag. 349 * @param pageNumber the page number in the data to retrieve 350 * @param pageSize the size of the page to retrieve. 351 * @param search the search object which provides the search parameters and pagination specification. 352 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 353 */ 354 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search); 355 356 /** 357 * Does the same thing as {@link #search(Search)} but with an 358 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 359 * limit your data to a specified page number and size. 360 * 361 * @param pageNumber the page number in the data to retrieve 362 * @param pageSize the size of the page to retrieve. 363 * @param search the search object which provides the search parameters and pagination specification. 364 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 365 */ 366 public PaginationResult search(final int pageNumber, final int pageSize, final Search search); 367 368 /** 369 * Does the same thing as {@link #search(Search)} but with an 370 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 371 * finder results will <strong>NOT</strong> be transformed during retrieval. 372 * If this flag is any of the other constants defined here 373 * then results <strong>WILL BE</strong> passed through an operation which can optionally 374 * transform the entities (into value objects for example). By default, transformation does 375 * not occur. 376 * 377 * @param transform the transformation flag. 378 * @param search the search object which provides the search parameters and pagination specification. 379 * @return any found results from the search. 380 */ 381 public Set<?> search(final int transform, final Search search); 382 383 /** 384 * Performs a search using the parameters specified in the given <code>search</code> object. 385 * 386 * @param search the search object which provides the search parameters and pagination specification. 387 * @return any found results from the search. 388 */ 389 public Set<FieldObservation> search(final Search search); 390 391 /** 392 * Allows transformation of entities into value objects 393 * (or something else for that matter), when the <code>transform</code> 394 * flag is set to one of the constants defined in <code>fr.ifremer.quadrige3.core.dao.data.survey.FieldObservationDao</code>, please note 395 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 396 * will be returned. 397 * 398 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 399 * 400 * @param transform one of the constants declared in {@link fr.ifremer.quadrige3.core.dao.data.survey.FieldObservationDao} 401 * @param entity an entity that was found 402 * @return the transformed entity (i.e. new value object, etc) 403 * @see #transformEntities(int,Collection) 404 */ 405 public Object transformEntity(final int transform, final FieldObservation entity); 406 407 /** 408 * Transforms a collection of entities using the 409 * {@link #transformEntity(int,FieldObservation)} 410 * method. This method does not instantiate a new collection. 411 * <p> 412 * This method is to be used internally only. 413 * 414 * @param transform one of the constants declared in <code>fr.ifremer.quadrige3.core.dao.data.survey.FieldObservationDao</code> 415 * @param entities the collection of entities to transform 416 * @see #transformEntity(int,FieldObservation) 417 */ 418 public void transformEntities(final int transform, final Collection<?> entities); 419 420 // spring-dao merge-point 421 }