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.user; 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.referential.Status; 30 import fr.ifremer.quadrige3.core.vo.administration.user.DepartmentVO; 31 import java.sql.Timestamp; 32 import java.util.Collection; 33 import java.util.Date; 34 import java.util.Set; 35 import org.andromda.spring.PaginationResult; 36 37 /** 38 * Liste les départements ou services auxquels sont rattachés les agents 39 * @see Department 40 */ 41 public interface DepartmentDao 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 Department} 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 DepartmentVO}. 68 */ 69 public static final int TRANSFORM_DEPARTMENTVO = 1; 70 71 /** 72 * Copies the fields of the specified entity to the target value object. This method is similar to 73 * toDepartmentVO(), 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 toDepartmentVO( 79 Department source, 80 DepartmentVO target); 81 82 /** 83 * Converts this DAO's entity to an object of type {@link DepartmentVO}. 84 * @param entity 85 * @return DepartmentVO 86 */ 87 public DepartmentVO toDepartmentVO(Department entity); 88 89 /** 90 * Converts this DAO's entity to a Collection of instances of type {@link DepartmentVO}. 91 * @param entities 92 */ 93 public Collection<DepartmentVO> toDepartmentVOCollection(Collection<?> entities); 94 95 /** 96 * Converts this DAO's entity to an array of instances of type {@link DepartmentVO}. 97 * @param entities 98 * @return DepartmentVO[] 99 */ 100 public DepartmentVO[] toDepartmentVOArray(Collection<?> entities); 101 102 /** 103 * Copies the fields of {@link DepartmentVO} 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 departmentVOToEntity( 110 DepartmentVO source, 111 Department target, 112 boolean copyIfNull); 113 114 /** 115 * Converts an instance of type {@link DepartmentVO} to this DAO's entity. 116 * @param departmentVO 117 * @return Department 118 */ 119 public Department departmentVOToEntity(DepartmentVO departmentVO); 120 121 /** 122 * Converts a Collection of instances of type {@link DepartmentVO} to this 123 * DAO's entity. 124 * @param instances 125 */ 126 public void departmentVOToEntityCollection(Collection<?> instances); 127 128 /** 129 * Gets an instance of Department from the persistent store. 130 * @param depId 131 * @return Department 132 */ 133 public Department get(Integer depId); 134 135 /** 136 * <p> 137 * Does the same thing as {@link #get(Integer)} with an 138 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 139 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 140 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 141 * optionally transform the entity (into a value object for example). By default, transformation does 142 * not occur. 143 * </p> 144 * 145 * @param transform flag to determine transformation type. 146 * @param depId the identifier of the entity to get. 147 * @return either the entity or the object transformed from the entity. 148 */ 149 public Object get(int transform, Integer depId); 150 151 /** 152 * Loads an instance of Department from the persistent store. 153 * @param depId 154 * @return Department 155 */ 156 public Department load(Integer depId); 157 158 /** 159 * <p> 160 * Does the same thing as {@link #load(Integer)} with an 161 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 162 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 163 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 164 * optionally transform the entity (into a value object for example). By default, transformation does 165 * not occur. 166 * </p> 167 * 168 * @param transform flag to determine transformation type. 169 * @param depId the identifier of the entity to load. 170 * @return either the entity or the object transformed from the entity. 171 */ 172 public Object load(int transform, Integer depId); 173 174 /** 175 * Loads all entities of type {@link Department}. 176 * 177 * @return the loaded entities. 178 */ 179 public Collection<Department> loadAll(); 180 181 /** 182 * <p> 183 * Does the same thing as {@link #loadAll()} with an 184 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 185 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 186 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 187 * transform the entity (into a value object for example). By default, transformation does 188 * not occur. 189 * </p> 190 * 191 * @param transform the flag indicating what transformation to use. 192 * @return the loaded entities. 193 */ 194 public Collection<?> loadAll(final int transform); 195 196 /** 197 * <p> 198 * Does the same thing as {@link #loadAll()} with an 199 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 200 * 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 201 * page retrieved. 202 * </p> 203 * 204 * @param pageNumber the page number to retrieve when paging results. 205 * @param pageSize the size of the page to retrieve when paging results. 206 * @return the loaded entities. 207 */ 208 public Collection<?> loadAll(final int pageNumber, final int pageSize); 209 210 /** 211 * <p> 212 * Does the same thing as {@link #loadAll(int)} with an 213 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 214 * 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 215 * page retrieved. 216 * </p> 217 * 218 * @param transform the flag indicating what transformation to use. 219 * @param pageNumber the page number to retrieve when paging results. 220 * @param pageSize the size of the page to retrieve when paging results. 221 * @return the loaded entities. 222 */ 223 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize); 224 225 /** 226 * Creates an instance of Department and adds it to the persistent store. 227 * @param department 228 * @return Department 229 */ 230 public Department create(Department department); 231 232 /** 233 * <p> 234 * Does the same thing as {@link #create(Department)} with an 235 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 236 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 237 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 238 * transform the entity (into a value object for example). By default, transformation does 239 * not occur. 240 * </p> 241 * @param transform 242 * @param department 243 * @return Object 244 */ 245 public Object create(int transform, Department department); 246 247 /** 248 * Creates a new instance of Department and adds 249 * from the passed in <code>entities</code> collection 250 * 251 * @param entities the collection of Department 252 * instances to create. 253 * 254 * @return the created instances. 255 */ 256 public Collection<Department> create(Collection<Department> entities); 257 258 /** 259 * <p> 260 * Does the same thing as {@link #create(Department)} with an 261 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 262 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 263 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 264 * transform the entities (into value objects for example). By default, transformation does 265 * not occur. 266 * </p> 267 * @param transform 268 * @param entities 269 * @return Collection 270 */ 271 public Collection<?> create(int transform, Collection<Department> entities); 272 273 /** 274 * <p> 275 * Creates a new <code>Department</code> 276 * instance from <strong>all</strong> attributes and adds it to 277 * the persistent store. 278 * </p> 279 * @param depCd Code (sigle dans LDAP : identifie de manière unique un service dans LDAP, attribut obligatoire dans 280 LDAP). 281 * @param depNm Libellé du service issue de l'intitulé dans le LDAP si existant (taillé comme une description car 282 les infos venant de LDAP dépassent les 100 caractères) 283 * @param depDc Description issue de l'activité LDAP 284 * @param depEMail Mail associé au service 285 * @param depAddress Adresse du site dans le LDAP, ou informations sur l'adresse de l'utilisateur. 286 * @param depPhone Les téléphones du service. 287 * @param depLdapPresent Oui, si le service est présent dans le LDAP 288 * @param depCreationDt Date de création de l'objet 289 * @param updateDt Date de modification de l'objet 290 * @param depCm 291 * @return Department 292 */ 293 public Department create( 294 String depCd, 295 String depNm, 296 String depDc, 297 String depEMail, 298 String depAddress, 299 String depPhone, 300 String depLdapPresent, 301 Date depCreationDt, 302 Timestamp updateDt, 303 String depCm); 304 305 /** 306 * <p> 307 * Does the same thing as {@link #create(String, String, String, String, String, String, String, Date, Timestamp, String)} with an 308 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 309 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 310 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 311 * transform the entity (into a value object for example). By default, transformation does 312 * not occur. 313 * </p> 314 * @param transform 315 * @param depCd Code (sigle dans LDAP : identifie de manière unique un service dans LDAP, attribut obligatoire dans 316 LDAP). 317 * @param depNm Libellé du service issue de l'intitulé dans le LDAP si existant (taillé comme une description car 318 les infos venant de LDAP dépassent les 100 caractères) 319 * @param depDc Description issue de l'activité LDAP 320 * @param depEMail Mail associé au service 321 * @param depAddress Adresse du site dans le LDAP, ou informations sur l'adresse de l'utilisateur. 322 * @param depPhone Les téléphones du service. 323 * @param depLdapPresent Oui, si le service est présent dans le LDAP 324 * @param depCreationDt Date de création de l'objet 325 * @param updateDt Date de modification de l'objet 326 * @param depCm 327 * @return Department 328 */ 329 public Object create( 330 int transform, 331 String depCd, 332 String depNm, 333 String depDc, 334 String depEMail, 335 String depAddress, 336 String depPhone, 337 String depLdapPresent, 338 Date depCreationDt, 339 Timestamp updateDt, 340 String depCm); 341 342 /** 343 * <p> 344 * Creates a new <code>Department</code> 345 * instance from only <strong>required</strong> properties (attributes 346 * and association ends) and adds it to the persistent store. 347 * </p> 348 * @param depCd 349 * @param depNm 350 * @param status 351 * @return Department 352 */ 353 public Department create( 354 String depCd, 355 String depNm, 356 Status status); 357 358 /** 359 * <p> 360 * Does the same thing as {@link #create(String, String)} with an 361 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 362 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 363 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 364 * transform the entity (into a value object for example). By default, transformation does 365 * not occur. 366 * </p> 367 * @param transform flag to determine transformation type. 368 * @param depCd 369 * @param depNm 370 * @param status 371 * @return Object 372 */ 373 public Object create( 374 int transform, 375 String depCd, 376 String depNm, 377 Status status); 378 379 /** 380 * Updates the <code>department</code> instance in the persistent store. 381 * @param department 382 */ 383 public void update(Department department); 384 385 /** 386 * Updates all instances in the <code>entities</code> collection in the persistent store. 387 * @param entities 388 */ 389 public void update(Collection<Department> entities); 390 391 /** 392 * Removes the instance of Department from the persistent store. 393 * @param department 394 */ 395 public void remove(Department department); 396 397 /** 398 * Removes the instance of Department having the given 399 * <code>identifier</code> from the persistent store. 400 * @param depId 401 */ 402 public void remove(Integer depId); 403 404 /** 405 * Removes all entities in the given <code>entities</code> collection. 406 * @param entities 407 */ 408 public void remove(Collection<Department> entities); 409 410 411 /** 412 * Does the same thing as {@link #search(int, Search)} but with an 413 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 414 * limit your data to a specified page number and size. 415 * 416 * @param transform the transformation flag. 417 * @param pageNumber the page number in the data to retrieve 418 * @param pageSize the size of the page to retrieve. 419 * @param search the search object which provides the search parameters and pagination specification. 420 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 421 */ 422 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search); 423 424 /** 425 * Does the same thing as {@link #search(Search)} but with an 426 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 427 * limit your data to a specified page number and size. 428 * 429 * @param pageNumber the page number in the data to retrieve 430 * @param pageSize the size of the page to retrieve. 431 * @param search the search object which provides the search parameters and pagination specification. 432 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 433 */ 434 public PaginationResult search(final int pageNumber, final int pageSize, final Search search); 435 436 /** 437 * Does the same thing as {@link #search(Search)} but with an 438 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 439 * finder results will <strong>NOT</strong> be transformed during retrieval. 440 * If this flag is any of the other constants defined here 441 * then results <strong>WILL BE</strong> passed through an operation which can optionally 442 * transform the entities (into value objects for example). By default, transformation does 443 * not occur. 444 * 445 * @param transform the transformation flag. 446 * @param search the search object which provides the search parameters and pagination specification. 447 * @return any found results from the search. 448 */ 449 public Set<?> search(final int transform, final Search search); 450 451 /** 452 * Performs a search using the parameters specified in the given <code>search</code> object. 453 * 454 * @param search the search object which provides the search parameters and pagination specification. 455 * @return any found results from the search. 456 */ 457 public Set<Department> search(final Search search); 458 459 /** 460 * Allows transformation of entities into value objects 461 * (or something else for that matter), when the <code>transform</code> 462 * flag is set to one of the constants defined in <code>fr.ifremer.quadrige3.core.dao.administration.user.DepartmentDao</code>, please note 463 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 464 * will be returned. 465 * <p> 466 * This method will return instances of these types: 467 * <ul> 468 * <li>{@link Department} - {@link #TRANSFORM_NONE}</li> 469 * <li>{@link DepartmentVO} - {@link #TRANSFORM_DEPARTMENTVO}</li> 470 * </ul> 471 * 472 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 473 * 474 * @param transform one of the constants declared in {@link fr.ifremer.quadrige3.core.dao.administration.user.DepartmentDao} 475 * @param entity an entity that was found 476 * @return the transformed entity (i.e. new value object, etc) 477 * @see #transformEntities(int,Collection) 478 */ 479 public Object transformEntity(final int transform, final Department entity); 480 481 /** 482 * Transforms a collection of entities using the 483 * {@link #transformEntity(int,Department)} 484 * method. This method does not instantiate a new collection. 485 * <p> 486 * This method is to be used internally only. 487 * 488 * @param transform one of the constants declared in <code>fr.ifremer.quadrige3.core.dao.administration.user.DepartmentDao</code> 489 * @param entities the collection of entities to transform 490 * @see #transformEntity(int,Department) 491 */ 492 public void transformEntities(final int transform, final Collection<?> entities); 493 494 // spring-dao merge-point 495 }