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.LightQuserVO; 32 import fr.ifremer.quadrige2.core.vo.administration.user.QuserVO; 33 import java.sql.Timestamp; 34 import java.util.Collection; 35 import java.util.Date; 36 import java.util.Set; 37 import org.andromda.spring.PaginationResult; 38 39 /** 40 * Liste l'ensemble des agents et utilisateurs du système. 41 * @see Quser 42 */ 43 public interface QuserDao 44 { 45 /** 46 * This constant is used as a transformation flag; entities can be converted automatically into value objects 47 * or other types, different methods in a class implementing this interface support this feature: look for 48 * an <code>int</code> parameter called <code>transform</code>. 49 * <p> 50 * This specific flag denotes no transformation will occur. 51 */ 52 public static final int TRANSFORM_NONE = 0; 53 54 55 /** 56 * Transforms the given results to a collection of {@link Quser} 57 * instances (this is useful when the returned results contains a row of data and you want just entities only). 58 * 59 * @param results the query results. 60 */ 61 public void toEntities(final Collection<?> results); 62 63 /** 64 * This constant is used as a transformation flag; entities can be converted automatically into value objects 65 * or other types, different methods in a class implementing this interface support this feature: look for 66 * an <code>int</code> parameter called <code>transform</code>. 67 * <p> 68 * This specific flag denotes entities must be transformed into objects of type 69 * {@link QuserVO}. 70 */ 71 public static final int TRANSFORM_QUSERVO = 1; 72 73 /** 74 * Copies the fields of the specified entity to the target value object. This method is similar to 75 * toQuserVO(), but it does not handle any attributes in the target 76 * value object that are "read-only" (as those do not have setter methods exposed). 77 * @param source 78 * @param target 79 */ 80 public void toQuserVO( 81 Quser source, 82 QuserVO target); 83 84 /** 85 * Converts this DAO's entity to an object of type {@link QuserVO}. 86 * @param entity 87 * @return QuserVO 88 */ 89 public QuserVO toQuserVO(Quser entity); 90 91 /** 92 * Converts this DAO's entity to a Collection of instances of type {@link QuserVO}. 93 * @param entities 94 */ 95 public Collection<QuserVO> toQuserVOCollection(Collection<?> entities); 96 97 /** 98 * Converts this DAO's entity to an array of instances of type {@link QuserVO}. 99 * @param entities 100 * @return QuserVO[] 101 */ 102 public QuserVO[] toQuserVOArray(Collection<?> entities); 103 104 /** 105 * Copies the fields of {@link QuserVO} to the specified entity. 106 * @param source 107 * @param target 108 * @param copyIfNull If FALSE, the value object's field will not be copied to the entity if the value is NULL. If TRUE, 109 * it will be copied regardless of its value. 110 */ 111 public void quserVOToEntity( 112 QuserVO source, 113 Quser target, 114 boolean copyIfNull); 115 116 /** 117 * Converts an instance of type {@link QuserVO} to this DAO's entity. 118 * @param quserVO 119 * @return Quser 120 */ 121 public Quser quserVOToEntity(QuserVO quserVO); 122 123 /** 124 * Converts a Collection of instances of type {@link QuserVO} to this 125 * DAO's entity. 126 * @param instances 127 */ 128 public void quserVOToEntityCollection(Collection<?> instances); 129 130 /** 131 * This constant is used as a transformation flag; entities can be converted automatically into value objects 132 * or other types, different methods in a class implementing this interface support this feature: look for 133 * an <code>int</code> parameter called <code>transform</code>. 134 * <p> 135 * This specific flag denotes entities must be transformed into objects of type 136 * {@link LightQuserVO}. 137 */ 138 public static final int TRANSFORM_LIGHTQUSERVO = 2; 139 140 /** 141 * Copies the fields of the specified entity to the target value object. This method is similar to 142 * toLightQuserVO(), but it does not handle any attributes in the target 143 * value object that are "read-only" (as those do not have setter methods exposed). 144 * @param source 145 * @param target 146 */ 147 public void toLightQuserVO( 148 Quser source, 149 LightQuserVO target); 150 151 /** 152 * Converts this DAO's entity to an object of type {@link LightQuserVO}. 153 * @param entity 154 * @return LightQuserVO 155 */ 156 public LightQuserVO toLightQuserVO(Quser entity); 157 158 /** 159 * Converts this DAO's entity to a Collection of instances of type {@link LightQuserVO}. 160 * @param entities 161 */ 162 public Collection<LightQuserVO> toLightQuserVOCollection(Collection<?> entities); 163 164 /** 165 * Converts this DAO's entity to an array of instances of type {@link LightQuserVO}. 166 * @param entities 167 * @return LightQuserVO[] 168 */ 169 public LightQuserVO[] toLightQuserVOArray(Collection<?> entities); 170 171 /** 172 * Copies the fields of {@link LightQuserVO} to the specified entity. 173 * @param source 174 * @param target 175 * @param copyIfNull If FALSE, the value object's field will not be copied to the entity if the value is NULL. If TRUE, 176 * it will be copied regardless of its value. 177 */ 178 public void lightQuserVOToEntity( 179 LightQuserVO source, 180 Quser target, 181 boolean copyIfNull); 182 183 /** 184 * Converts an instance of type {@link LightQuserVO} to this DAO's entity. 185 * @param lightQuserVO 186 * @return Quser 187 */ 188 public Quser lightQuserVOToEntity(LightQuserVO lightQuserVO); 189 190 /** 191 * Converts a Collection of instances of type {@link LightQuserVO} to this 192 * DAO's entity. 193 * @param instances 194 */ 195 public void lightQuserVOToEntityCollection(Collection<?> instances); 196 197 /** 198 * Gets an instance of Quser from the persistent store. 199 * @param quserId 200 * @return Quser 201 */ 202 public Quser get(Integer quserId); 203 204 /** 205 * <p> 206 * Does the same thing as {@link #get(Integer)} with an 207 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 208 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 209 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 210 * optionally transform the entity (into a value object for example). By default, transformation does 211 * not occur. 212 * </p> 213 * 214 * @param transform flag to determine transformation type. 215 * @param quserId the identifier of the entity to get. 216 * @return either the entity or the object transformed from the entity. 217 */ 218 public Object get(int transform, Integer quserId); 219 220 /** 221 * Loads an instance of Quser from the persistent store. 222 * @param quserId 223 * @return Quser 224 */ 225 public Quser load(Integer quserId); 226 227 /** 228 * <p> 229 * Does the same thing as {@link #load(Integer)} with an 230 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 231 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 232 * defined in this class then the result <strong>WILL BE</strong> passed through an operation which can 233 * optionally transform the entity (into a value object for example). By default, transformation does 234 * not occur. 235 * </p> 236 * 237 * @param transform flag to determine transformation type. 238 * @param quserId the identifier of the entity to load. 239 * @return either the entity or the object transformed from the entity. 240 */ 241 public Object load(int transform, Integer quserId); 242 243 /** 244 * Loads all entities of type {@link Quser}. 245 * 246 * @return the loaded entities. 247 */ 248 public Collection<Quser> loadAll(); 249 250 /** 251 * <p> 252 * Does the same thing as {@link #loadAll()} with an 253 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 254 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 255 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 256 * transform the entity (into a value object for example). By default, transformation does 257 * not occur. 258 * </p> 259 * 260 * @param transform the flag indicating what transformation to use. 261 * @return the loaded entities. 262 */ 263 public Collection<?> loadAll(final int transform); 264 265 /** 266 * <p> 267 * Does the same thing as {@link #loadAll()} with an 268 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 269 * 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 270 * page retrieved. 271 * </p> 272 * 273 * @param pageNumber the page number to retrieve when paging results. 274 * @param pageSize the size of the page to retrieve when paging results. 275 * @return the loaded entities. 276 */ 277 public Collection<?> loadAll(final int pageNumber, final int pageSize); 278 279 /** 280 * <p> 281 * Does the same thing as {@link #loadAll(int)} with an 282 * additional two arguments called <code>pageNumber</code> and <code>pageSize</code>. The <code>pageNumber</code> 283 * 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 284 * page retrieved. 285 * </p> 286 * 287 * @param transform the flag indicating what transformation to use. 288 * @param pageNumber the page number to retrieve when paging results. 289 * @param pageSize the size of the page to retrieve when paging results. 290 * @return the loaded entities. 291 */ 292 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize); 293 294 /** 295 * Creates an instance of Quser and adds it to the persistent store. 296 * @param quser 297 * @return Quser 298 */ 299 public Quser create(Quser quser); 300 301 /** 302 * <p> 303 * Does the same thing as {@link #create(Quser)} with an 304 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 305 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 306 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 307 * transform the entity (into a value object for example). By default, transformation does 308 * not occur. 309 * </p> 310 * @param transform 311 * @param quser 312 * @return Object 313 */ 314 public Object create(int transform, Quser quser); 315 316 /** 317 * Creates a new instance of Quser and adds 318 * from the passed in <code>entities</code> collection 319 * 320 * @param entities the collection of Quser 321 * instances to create. 322 * 323 * @return the created instances. 324 */ 325 public Collection<Quser> create(Collection<Quser> entities); 326 327 /** 328 * <p> 329 * Does the same thing as {@link #create(Quser)} with an 330 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 331 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 332 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 333 * transform the entities (into value objects for example). By default, transformation does 334 * not occur. 335 * </p> 336 * @param transform 337 * @param entities 338 * @return Collection 339 */ 340 public Collection<?> create(int transform, Collection<Quser> entities); 341 342 /** 343 * <p> 344 * Creates a new <code>Quser</code> 345 * instance from <strong>all</strong> attributes and adds it to 346 * the persistent store. 347 * </p> 348 * @param quserCd Matricule : identifie de manière unique une personne dans LDAP, attribut obligatoire dans LDAP 349 * @param quserLastNm Nom de l'agent, obligatoire 350 * @param quserFirstNm Prénom de l'agent 351 * @param quserIntranetLg UID du LDAP intranet de l'agent s'il existe 352 * @param quserExtranetLg UID du LDAP extranet de l'agent s'il existe 353 * @param quserEMail Adresse électronique de la personne 354 * @param quserAddress Adresse du site dans le LDAP, ou informations sur l'adresse de l'utilisateur. 355 * @param quserPhone Liste des téléphones de la personnes 356 * @param quserOrgan Organisme dont dépend la personne (voir avec service)!!! 357 * @param quserAdminCenter Centre administratif dont dépend la personne (voir avec service) !! 358 * @param quserSite Site auquel est affectée la personne 359 * @param quserLdapPresent Oui, si l'utilisateur est présent dans le LDAP (code renseigné). 360 * @param quserCryptPassword Crypt password, for local DB only (e.g. ReefDb) 361 * @param quserCreationDt Date de création de l'objet 362 * @param updateDt Date de modification de l'objet 363 * @return Quser 364 */ 365 public Quser create( 366 String quserCd, 367 String quserLastNm, 368 String quserFirstNm, 369 String quserIntranetLg, 370 String quserExtranetLg, 371 String quserEMail, 372 String quserAddress, 373 String quserPhone, 374 String quserOrgan, 375 String quserAdminCenter, 376 String quserSite, 377 String quserLdapPresent, 378 String quserCryptPassword, 379 Date quserCreationDt, 380 Timestamp updateDt); 381 382 /** 383 * <p> 384 * Does the same thing as {@link #create(String, String, String, String, String, String, String, String, String, String, String, String, String, Date, Timestamp)} with an 385 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 386 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 387 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 388 * transform the entity (into a value object for example). By default, transformation does 389 * not occur. 390 * </p> 391 * @param transform 392 * @param quserCd Matricule : identifie de manière unique une personne dans LDAP, attribut obligatoire dans LDAP 393 * @param quserLastNm Nom de l'agent, obligatoire 394 * @param quserFirstNm Prénom de l'agent 395 * @param quserIntranetLg UID du LDAP intranet de l'agent s'il existe 396 * @param quserExtranetLg UID du LDAP extranet de l'agent s'il existe 397 * @param quserEMail Adresse électronique de la personne 398 * @param quserAddress Adresse du site dans le LDAP, ou informations sur l'adresse de l'utilisateur. 399 * @param quserPhone Liste des téléphones de la personnes 400 * @param quserOrgan Organisme dont dépend la personne (voir avec service)!!! 401 * @param quserAdminCenter Centre administratif dont dépend la personne (voir avec service) !! 402 * @param quserSite Site auquel est affectée la personne 403 * @param quserLdapPresent Oui, si l'utilisateur est présent dans le LDAP (code renseigné). 404 * @param quserCryptPassword Crypt password, for local DB only (e.g. ReefDb) 405 * @param quserCreationDt Date de création de l'objet 406 * @param updateDt Date de modification de l'objet 407 * @return Quser 408 */ 409 public Object create( 410 int transform, 411 String quserCd, 412 String quserLastNm, 413 String quserFirstNm, 414 String quserIntranetLg, 415 String quserExtranetLg, 416 String quserEMail, 417 String quserAddress, 418 String quserPhone, 419 String quserOrgan, 420 String quserAdminCenter, 421 String quserSite, 422 String quserLdapPresent, 423 String quserCryptPassword, 424 Date quserCreationDt, 425 Timestamp updateDt); 426 427 /** 428 * <p> 429 * Creates a new <code>Quser</code> 430 * instance from only <strong>required</strong> properties (attributes 431 * and association ends) and adds it to the persistent store. 432 * </p> 433 * @param quserFirstNm 434 * @param quserIntranetLg 435 * @param quserLastNm 436 * @param updateDt 437 * @param department 438 * @param status 439 * @return Quser 440 */ 441 public Quser create( 442 String quserFirstNm, 443 String quserIntranetLg, 444 String quserLastNm, 445 Timestamp updateDt, 446 Department department, 447 Status status); 448 449 /** 450 * <p> 451 * Does the same thing as {@link #create(String, String, String, Timestamp)} with an 452 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 453 * the returned entity will <strong>NOT</strong> be transformed. If this flag is any of the other constants 454 * defined here then the result <strong>WILL BE</strong> passed through an operation which can optionally 455 * transform the entity (into a value object for example). By default, transformation does 456 * not occur. 457 * </p> 458 * @param transform flag to determine transformation type. 459 * @param quserFirstNm 460 * @param quserIntranetLg 461 * @param quserLastNm 462 * @param updateDt 463 * @param department 464 * @param status 465 * @return Object 466 */ 467 public Object create( 468 int transform, 469 String quserFirstNm, 470 String quserIntranetLg, 471 String quserLastNm, 472 Timestamp updateDt, 473 Department department, 474 Status status); 475 476 /** 477 * Updates the <code>quser</code> instance in the persistent store. 478 * @param quser 479 */ 480 public void update(Quser quser); 481 482 /** 483 * Updates all instances in the <code>entities</code> collection in the persistent store. 484 * @param entities 485 */ 486 public void update(Collection<Quser> entities); 487 488 /** 489 * Removes the instance of Quser from the persistent store. 490 * @param quser 491 */ 492 public void remove(Quser quser); 493 494 /** 495 * Removes the instance of Quser having the given 496 * <code>identifier</code> from the persistent store. 497 * @param quserId 498 */ 499 public void remove(Integer quserId); 500 501 /** 502 * Removes all entities in the given <code>entities</code> collection. 503 * @param entities 504 */ 505 public void remove(Collection<Quser> entities); 506 507 508 /** 509 * Does the same thing as {@link #search(int, Search)} but with an 510 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 511 * limit your data to a specified page number and size. 512 * 513 * @param transform the transformation flag. 514 * @param pageNumber the page number in the data to retrieve 515 * @param pageSize the size of the page to retrieve. 516 * @param search the search object which provides the search parameters and pagination specification. 517 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 518 */ 519 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search); 520 521 /** 522 * Does the same thing as {@link #search(Search)} but with an 523 * additional two flags called <code>pageNumber</code> and <code>pageSize</code>. These flags allow you to 524 * limit your data to a specified page number and size. 525 * 526 * @param pageNumber the page number in the data to retrieve 527 * @param pageSize the size of the page to retrieve. 528 * @param search the search object which provides the search parameters and pagination specification. 529 * @return any found results from the search wrapped in a {@link PaginationResult} instance. 530 */ 531 public PaginationResult search(final int pageNumber, final int pageSize, final Search search); 532 533 /** 534 * Does the same thing as {@link #search(Search)} but with an 535 * additional flag called <code>transform</code>. If this flag is set to <code>TRANSFORM_NONE</code> then 536 * finder results will <strong>NOT</strong> be transformed during retrieval. 537 * If this flag is any of the other constants defined here 538 * then results <strong>WILL BE</strong> passed through an operation which can optionally 539 * transform the entities (into value objects for example). By default, transformation does 540 * not occur. 541 * 542 * @param transform the transformation flag. 543 * @param search the search object which provides the search parameters and pagination specification. 544 * @return any found results from the search. 545 */ 546 public Set<?> search(final int transform, final Search search); 547 548 /** 549 * Performs a search using the parameters specified in the given <code>search</code> object. 550 * 551 * @param search the search object which provides the search parameters and pagination specification. 552 * @return any found results from the search. 553 */ 554 public Set<Quser> search(final Search search); 555 556 /** 557 * Allows transformation of entities into value objects 558 * (or something else for that matter), when the <code>transform</code> 559 * flag is set to one of the constants defined in <code>fr.ifremer.quadrige2.core.dao.administration.user.QuserDao</code>, please note 560 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 561 * will be returned. 562 * <p> 563 * This method will return instances of these types: 564 * <ul> 565 * <li>{@link Quser} - {@link #TRANSFORM_NONE}</li> 566 * <li>{@link QuserVO} - {@link #TRANSFORM_QUSERVO}</li> 567 * <li>{@link LightQuserVO} - {@link #TRANSFORM_LIGHTQUSERVO}</li> 568 * </ul> 569 * 570 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 571 * 572 * @param transform one of the constants declared in {@link fr.ifremer.quadrige2.core.dao.administration.user.QuserDao} 573 * @param entity an entity that was found 574 * @return the transformed entity (i.e. new value object, etc) 575 * @see #transformEntities(int,Collection) 576 */ 577 public Object transformEntity(final int transform, final Quser entity); 578 579 /** 580 * Transforms a collection of entities using the 581 * {@link #transformEntity(int,Quser)} 582 * method. This method does not instantiate a new collection. 583 * <p> 584 * This method is to be used internally only. 585 * 586 * @param transform one of the constants declared in <code>fr.ifremer.quadrige2.core.dao.administration.user.QuserDao</code> 587 * @param entities the collection of entities to transform 588 * @see #transformEntity(int,Quser) 589 */ 590 public void transformEntities(final int transform, final Collection<?> entities); 591 592 // spring-dao merge-point 593 }