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