001// license-header java merge-point 002// 003// Attention: Generated code! Do not modify by hand! 004// Generated by: hibernate/SpringHibernateDaoBase.vsl in <project>/mda/src/main/cartridge/custom/... 005// 006package fr.ifremer.adagio.core.dao.administration.user; 007 008/* 009 * #%L 010 * SIH-Adagio :: Core 011 * $Id:$ 012 * $HeadURL:$ 013 * %% 014 * Copyright (C) 2012 - 2014 Ifremer 015 * %% 016 * This program is free software: you can redistribute it and/or modify 017 * it under the terms of the GNU Affero General Public License as published by 018 * the Free Software Foundation, either version 3 of the License, or 019 * (at your option) any later version. 020 * 021 * This program is distributed in the hope that it will be useful, 022 * but WITHOUT ANY WARRANTY; without even the implied warranty of 023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 024 * GNU General Public License for more details. 025 * 026 * You should have received a copy of the GNU Affero General Public License 027 * along with this program. If not, see <http://www.gnu.org/licenses/>. 028 * #L% 029 */ 030 031import fr.ifremer.adagio.core.dao.PrincipalStore; 032import fr.ifremer.adagio.core.dao.PropertySearch; 033import fr.ifremer.adagio.core.dao.Search; 034import fr.ifremer.adagio.core.dao.referential.Status; 035import fr.ifremer.adagio.core.dao.technical.hibernate.HibernateDaoSupport; 036import java.security.Principal; 037import java.sql.Timestamp; 038import java.util.Collection; 039import java.util.Date; 040import java.util.LinkedHashSet; 041import java.util.List; 042import java.util.Set; 043import javax.annotation.Resource; 044import org.andromda.spring.PaginationResult; 045import org.apache.commons.collections.CollectionUtils; 046import org.apache.commons.collections.Transformer; 047import org.hibernate.Criteria; 048import org.hibernate.HibernateException; 049import org.hibernate.Query; 050import org.hibernate.ScrollableResults; 051 052/** 053 * <p> 054 * Base Spring DAO Class: is able to create, update, remove, load, and find 055 * objects of type <code>DepartmentPrivilegeTransfert</code>. 056 * </p> 057 * 058 * @see DepartmentPrivilegeTransfert 059 */ 060public abstract class DepartmentPrivilegeTransfertDaoBase 061 extends HibernateDaoSupport 062 implements DepartmentPrivilegeTransfertDao 063{ 064 /** 065 * {@inheritDoc} 066 */ 067 @Override 068 public Object get(final int transform, final DepartmentPrivilegeTransfertPK departmentPrivilegeTransfertPk) 069 { 070 if (departmentPrivilegeTransfertPk == null) 071 { 072 throw new IllegalArgumentException( 073 "DepartmentPrivilegeTransfert.get - 'departmentPrivilegeTransfertPk' can not be null"); 074 } 075 final DepartmentPrivilegeTransfert entity = get(DepartmentPrivilegeTransfertImpl.class, departmentPrivilegeTransfertPk); 076 return transformEntity(transform, entity); 077 } 078 /** 079 * {@inheritDoc} 080 */ 081 @Override 082 public DepartmentPrivilegeTransfert get(DepartmentPrivilegeTransfertPK departmentPrivilegeTransfertPk) 083 { 084 return (DepartmentPrivilegeTransfert)this.get(TRANSFORM_NONE, departmentPrivilegeTransfertPk); 085 } 086 087 /** 088 * {@inheritDoc} 089 */ 090 @Override 091 public Object load(final int transform, final DepartmentPrivilegeTransfertPK departmentPrivilegeTransfertPk) 092 { 093 if (departmentPrivilegeTransfertPk == null) 094 { 095 throw new IllegalArgumentException( 096 "DepartmentPrivilegeTransfert.load - 'departmentPrivilegeTransfertPk' can not be null"); 097 } 098 final DepartmentPrivilegeTransfert entity = get(DepartmentPrivilegeTransfertImpl.class, departmentPrivilegeTransfertPk); 099 return transformEntity(transform, entity); 100 } 101 102 /** 103 * {@inheritDoc} 104 */ 105 @Override 106 public DepartmentPrivilegeTransfert load(DepartmentPrivilegeTransfertPK departmentPrivilegeTransfertPk) 107 { 108 return (DepartmentPrivilegeTransfert)this.load(TRANSFORM_NONE, departmentPrivilegeTransfertPk); 109 } 110 111 /** 112 * {@inheritDoc} 113 */ 114 @Override 115 @SuppressWarnings({"unchecked"}) 116 public Collection<DepartmentPrivilegeTransfert> loadAll() 117 { 118 return (Collection<DepartmentPrivilegeTransfert>) this.loadAll(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE); 119 } 120 121 /** 122 * {@inheritDoc} 123 */ 124 @Override 125 public Collection<?> loadAll(final int transform) 126 { 127 return this.loadAll(transform, -1, -1); 128 } 129 130 /** 131 * {@inheritDoc} 132 */ 133 @Override 134 public Collection<?> loadAll(final int pageNumber, final int pageSize) 135 { 136 return this.loadAll(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE, pageNumber, pageSize); 137 } 138 139 /** 140 * {@inheritDoc} 141 */ 142 @Override 143 public Collection<?> loadAll(final int transform, final int pageNumber, final int pageSize) 144 { 145 try 146 { 147 final Criteria criteria = this.getSession().createCriteria(DepartmentPrivilegeTransfertImpl.class); 148 if (pageNumber > 0 && pageSize > 0) 149 { 150 criteria.setFirstResult(this.calculateFirstResult(pageNumber, pageSize)); 151 criteria.setMaxResults(pageSize); 152 } 153 final Collection<?> results = criteria.list(); 154 this.transformEntities(transform, results); 155 return results; 156 } 157 catch (HibernateException ex) 158 { 159 throw ex; 160 } 161 } 162 163 /** 164 * firstResult = (pageNumber - 1) * pageSize 165 * @param pageNumber 166 * @param pageSize 167 * @return firstResult 168 */ 169 protected int calculateFirstResult(int pageNumber, int pageSize) 170 { 171 int firstResult = 0; 172 if (pageNumber > 0) 173 { 174 firstResult = (pageNumber - 1) * pageSize; 175 } 176 return firstResult; 177 } 178 179 /** 180 * {@inheritDoc} 181 */ 182 @Override 183 public DepartmentPrivilegeTransfert create(DepartmentPrivilegeTransfert departmentPrivilegeTransfert) 184 { 185 return (DepartmentPrivilegeTransfert)this.create(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE, departmentPrivilegeTransfert); 186 } 187 188 /** 189 * {@inheritDoc} 190 */ 191 @Override 192 public Object create(final int transform, final DepartmentPrivilegeTransfert departmentPrivilegeTransfert) 193 { 194 if (departmentPrivilegeTransfert == null) 195 { 196 throw new IllegalArgumentException( 197 "DepartmentPrivilegeTransfert.create - 'departmentPrivilegeTransfert' can not be null"); 198 } 199 this.getSessionFactory().getCurrentSession().save(departmentPrivilegeTransfert); 200 return this.transformEntity(transform, departmentPrivilegeTransfert); 201 } 202 203 /** 204 * {@inheritDoc} 205 */ 206 @Override 207 @SuppressWarnings({"unchecked"}) 208 public Collection<DepartmentPrivilegeTransfert> create(final Collection<DepartmentPrivilegeTransfert> entities) 209 { 210 return (Collection<DepartmentPrivilegeTransfert>) create(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE, entities); 211 } 212 213 /** 214 * {@inheritDoc} 215 */ 216 @Override 217 public Collection<?> create(final int transform, final Collection<DepartmentPrivilegeTransfert> entities) 218 { 219 if (entities == null) 220 { 221 throw new IllegalArgumentException( 222 "DepartmentPrivilegeTransfert.create - 'entities' can not be null"); 223 } 224 for (DepartmentPrivilegeTransfert entity : entities) 225 { 226 create(transform, entity); 227 } 228 return entities; 229 } 230 231 /** 232 * {@inheritDoc} 233 */ 234 @Override 235 public DepartmentPrivilegeTransfert create( 236 Date transfertDate, 237 Timestamp updateDate) 238 { 239 return (DepartmentPrivilegeTransfert)this.create(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE, transfertDate, updateDate); 240 } 241 242 /** 243 * {@inheritDoc} 244 */ 245 @Override 246 public Object create( 247 final int transform, 248 Date transfertDate, 249 Timestamp updateDate) 250 { 251 DepartmentPrivilegeTransfert entity = new DepartmentPrivilegeTransfertImpl(); 252 entity.setTransfertDate(transfertDate); 253 entity.setUpdateDate(updateDate); 254 return this.create(transform, entity); 255 } 256 257 /** 258 * {@inheritDoc} 259 */ 260 @Override 261 public DepartmentPrivilegeTransfert create( 262 Department fromDepartment, 263 Status status, 264 Department toDepartment, 265 Date transfertDate, 266 Timestamp updateDate) 267 { 268 return (DepartmentPrivilegeTransfert)this.create(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE, fromDepartment, status, toDepartment, transfertDate, updateDate); 269 } 270 271 /** 272 * {@inheritDoc} 273 */ 274 @Override 275 public Object create( 276 final int transform, 277 Department fromDepartment, 278 Status status, 279 Department toDepartment, 280 Date transfertDate, 281 Timestamp updateDate) 282 { 283 DepartmentPrivilegeTransfert entity = new DepartmentPrivilegeTransfertImpl(); 284 entity.setFromDepartment(fromDepartment); 285 entity.setStatus(status); 286 entity.setToDepartment(toDepartment); 287 entity.setTransfertDate(transfertDate); 288 entity.setUpdateDate(updateDate); 289 return this.create(transform, entity); 290 } 291 292 /** 293 * {@inheritDoc} 294 */ 295 @Override 296 public void update(DepartmentPrivilegeTransfert departmentPrivilegeTransfert) 297 { 298 if (departmentPrivilegeTransfert == null) 299 { 300 throw new IllegalArgumentException( 301 "DepartmentPrivilegeTransfert.update - 'departmentPrivilegeTransfert' can not be null"); 302 } 303 this.getSessionFactory().getCurrentSession().update(departmentPrivilegeTransfert); 304 } 305 306 /** 307 * {@inheritDoc} 308 */ 309 @Override 310 public void update(final Collection<DepartmentPrivilegeTransfert> entities) 311 { 312 if (entities == null) 313 { 314 throw new IllegalArgumentException( 315 "DepartmentPrivilegeTransfert.update - 'entities' can not be null"); 316 } 317 for (DepartmentPrivilegeTransfert entity : entities) 318 { 319 update(entity); 320 } 321 } 322 323 /** 324 * {@inheritDoc} 325 */ 326 @Override 327 public void remove(DepartmentPrivilegeTransfert departmentPrivilegeTransfert) 328 { 329 if (departmentPrivilegeTransfert == null) 330 { 331 throw new IllegalArgumentException( 332 "DepartmentPrivilegeTransfert.remove - 'departmentPrivilegeTransfert' can not be null"); 333 } 334 this.getSessionFactory().getCurrentSession().delete(departmentPrivilegeTransfert); 335 } 336 337 /** 338 * {@inheritDoc} 339 */ 340 @Override 341 public void remove(DepartmentPrivilegeTransfertPK departmentPrivilegeTransfertPk) 342 { 343 if (departmentPrivilegeTransfertPk == null) 344 { 345 throw new IllegalArgumentException( 346 "DepartmentPrivilegeTransfert.remove - 'departmentPrivilegeTransfertPk' can not be null"); 347 } 348 DepartmentPrivilegeTransfert entity = this.get(departmentPrivilegeTransfertPk); 349 if (entity != null) 350 { 351 this.remove(entity); 352 } 353 } 354 355 /** 356 * {@inheritDoc} 357 */ 358 @Override 359 public void remove(Collection<DepartmentPrivilegeTransfert> entities) 360 { 361 if (entities == null) 362 { 363 throw new IllegalArgumentException( 364 "DepartmentPrivilegeTransfert.remove - 'entities' can not be null"); 365 } 366 deleteAll(entities); 367 } 368 /** 369 * Allows transformation of entities into value objects 370 * (or something else for that matter), when the <code>transform</code> 371 * flag is set to one of the constants defined in <code>DepartmentPrivilegeTransfertDao</code>, please note 372 * that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself 373 * will be returned. 374 * 375 * If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed. 376 * 377 * @param transform one of the constants declared in {@link DepartmentPrivilegeTransfertDao} 378 * @param entity an entity that was found 379 * @return the transformed entity (i.e. new value object, etc) 380 * @see DepartmentPrivilegeTransfertDao#transformEntity(int, DepartmentPrivilegeTransfert) 381 */ 382 public Object transformEntity(final int transform, final DepartmentPrivilegeTransfert entity) 383 { 384 Object target = null; 385 if (entity != null) 386 { 387 switch (transform) 388 { 389 case DepartmentPrivilegeTransfertDao.TRANSFORM_NONE : // fall-through 390 default: 391 target = entity; 392 } 393 } 394 return target; 395 } 396 397 /** 398 * {@inheritDoc} 399 */ 400 @Override 401 public void transformEntities(final int transform, final Collection<?> entities) 402 { 403 switch (transform) 404 { 405 case DepartmentPrivilegeTransfertDao.TRANSFORM_NONE : // fall-through 406 default: 407 // do nothing; 408 } 409 } 410 411 /** 412 * @see DepartmentPrivilegeTransfertDao#toEntities(Collection) 413 */ 414 public void toEntities(final Collection<?> results) 415 { 416 if (results != null) 417 { 418 CollectionUtils.transform(results, this.ENTITYTRANSFORMER); 419 } 420 } 421 422 /** 423 * This anonymous transformer is designed to transform report query results 424 * (which result in an array of entities) to {@link DepartmentPrivilegeTransfert} 425 * using the Jakarta Commons-Collections Transformation API. 426 */ 427 private Transformer ENTITYTRANSFORMER = 428 new Transformer() 429 { 430 public Object transform(Object input) 431 { 432 Object result = null; 433 if (input instanceof Object[]) 434 { 435 result = toEntity((Object[])input); 436 } 437 else if (input instanceof DepartmentPrivilegeTransfert) 438 { 439 result = input; 440 } 441 return result; 442 } 443 }; 444 445 /** 446 * @param row 447 * @return DepartmentPrivilegeTransfert 448 */ 449 protected DepartmentPrivilegeTransfert toEntity(Object[] row) 450 { 451 DepartmentPrivilegeTransfert target = null; 452 if (row != null) 453 { 454 final int numberOfObjects = row.length; 455 for (int ctr = 0; ctr < numberOfObjects; ctr++) 456 { 457 final Object object = row[ctr]; 458 if (object instanceof DepartmentPrivilegeTransfert) 459 { 460 target = (DepartmentPrivilegeTransfert)object; 461 break; 462 } 463 } 464 } 465 return target; 466 } 467 468 /** 469 * Gets the current <code>principal</code> if one has been set, 470 * otherwise returns <code>null</code>. 471 * 472 * @return the current principal 473 */ 474 protected Principal getPrincipal() 475 { 476 return PrincipalStore.get(); 477 } 478 479 /** 480 * {@inheritDoc} 481 */ 482 @Override 483 @SuppressWarnings({ "unchecked" }) 484 public PaginationResult search(final int transform, final int pageNumber, final int pageSize, final Search search) 485 { 486 try 487 { 488 search.setPageNumber(pageNumber); 489 search.setPageSize(pageSize); 490 final PropertySearch propertySearch = new PropertySearch( 491 this.getSession(), DepartmentPrivilegeTransfertImpl.class, search); 492 final List results = propertySearch.executeAsList(); 493 this.transformEntities(transform, results); 494 return new PaginationResult(results.toArray(new Object[results.size()]), propertySearch.getTotalCount()); 495 } 496 catch (HibernateException ex) 497 { 498 throw ex; /*super.convertHibernateAccessException(ex);*/ 499 } 500 } 501 502 /** 503 * {@inheritDoc} 504 */ 505 @Override 506 public PaginationResult search(final int pageNumber, final int pageSize, final Search search) 507 { 508 return this.search(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE, pageNumber, pageSize, search); 509 } 510 511 /** 512 * {@inheritDoc} 513 */ 514 @Override 515 public Set<?> search(final int transform, final Search search) 516 { 517 try 518 { 519 final PropertySearch propertySearch = new PropertySearch( 520 this.getSession(), DepartmentPrivilegeTransfertImpl.class, search); 521 final Set<?> results = propertySearch.executeAsSet(); 522 this.transformEntities(transform, results); 523 return results; 524 } 525 catch (HibernateException ex) 526 { 527 throw ex; /*super.convertHibernateAccessException(ex);*/ 528 } 529 } 530 531 /** 532 * {@inheritDoc} 533 */ 534 @Override 535 @SuppressWarnings("unchecked") 536 public Set<DepartmentPrivilegeTransfert> search(final Search search) 537 { 538 return (Set<DepartmentPrivilegeTransfert>) this.search(DepartmentPrivilegeTransfertDao.TRANSFORM_NONE, search); 539 } 540 541 /** 542 * Executes and returns the given Hibernate queryObject as a {@link PaginationResult} instance. 543 * @param queryObject 544 * @param transform 545 * @param pageNumber 546 * @param pageSize 547 * @return PaginationResult 548 */ 549 @SuppressWarnings({ "unchecked" }) 550 protected PaginationResult getPaginationResult( 551 final Query queryObject, 552 final int transform, int pageNumber, int pageSize) 553 { 554 try 555 { 556 final ScrollableResults scrollableResults = queryObject.scroll(); 557 scrollableResults.last(); 558 int totalCount = scrollableResults.getRowNumber(); 559 totalCount = totalCount >= 0 ? totalCount + 1 : 0; 560 if (pageNumber > 0 && pageSize > 0) 561 { 562 queryObject.setFirstResult(this.calculateFirstResult(pageNumber, pageSize)); 563 queryObject.setMaxResults(pageSize); 564 } 565 // Unchecked transformation because Set object is reused, cannot be strongly typed. 566 Set results = new LinkedHashSet(queryObject.list()); 567 transformEntities(transform, results); 568 return new PaginationResult(results.toArray(new Object[results.size()]), totalCount); 569 } 570 catch (HibernateException ex) 571 { 572 throw ex; /*super.convertHibernateAccessException(ex);*/ 573 } 574 } 575 576 // spring-hibernate-dao-base merge-point 577}