3 * Copyright (C) 2013 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.dataimport
.transientServices
;
12 import java
.util
.List
;
15 import java
.util
.UUID
;
17 import org
.hibernate
.LockMode
;
18 import org
.hibernate
.Session
;
19 import org
.hibernate
.criterion
.Criterion
;
20 import org
.hibernate
.envers
.query
.criteria
.AuditCriterion
;
22 import eu
.etaxonomy
.cdm
.api
.service
.ICollectionService
;
23 import eu
.etaxonomy
.cdm
.api
.service
.config
.IIdentifiableEntityServiceConfigurator
;
24 import eu
.etaxonomy
.cdm
.api
.service
.pager
.Pager
;
25 import eu
.etaxonomy
.cdm
.common
.monitor
.IProgressMonitor
;
26 import eu
.etaxonomy
.cdm
.model
.common
.Annotation
;
27 import eu
.etaxonomy
.cdm
.model
.common
.ISourceable
;
28 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableSource
;
29 import eu
.etaxonomy
.cdm
.model
.common
.LSID
;
30 import eu
.etaxonomy
.cdm
.model
.common
.Marker
;
31 import eu
.etaxonomy
.cdm
.model
.common
.MarkerType
;
32 import eu
.etaxonomy
.cdm
.model
.common
.UuidAndTitleCache
;
33 import eu
.etaxonomy
.cdm
.model
.media
.Rights
;
34 import eu
.etaxonomy
.cdm
.model
.occurrence
.Collection
;
35 import eu
.etaxonomy
.cdm
.model
.view
.AuditEvent
;
36 import eu
.etaxonomy
.cdm
.model
.view
.AuditEventRecord
;
37 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.AuditEventSort
;
38 import eu
.etaxonomy
.cdm
.persistence
.query
.Grouping
;
39 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
40 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
41 import eu
.etaxonomy
.cdm
.strategy
.cache
.common
.IIdentifiableEntityCacheStrategy
;
42 import eu
.etaxonomy
.cdm
.strategy
.match
.IMatchStrategy
;
43 import eu
.etaxonomy
.cdm
.strategy
.merge
.IMergeStrategy
;
50 public class TransientCollectionService
implements ICollectionService
{
52 private ICollectionService defaultCollectionService
;
55 * @param defaultCollectionService
57 public TransientCollectionService(ICollectionService defaultCollectionService
) {
58 this.defaultCollectionService
= defaultCollectionService
;
67 * @param propertyPaths
69 * @see eu.etaxonomy.cdm.api.service.ICollectionService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
72 public Pager
<Collection
> search(Class
<?
extends Collection
> clazz
, String query
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
73 return defaultCollectionService
.search(clazz
, query
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
81 * @param propertyPaths
83 * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(eu.etaxonomy.cdm.model.common.VersionableEntity, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
86 public Pager
<AuditEventRecord
<Collection
>> pageAuditEvents(Collection t
, Integer pageSize
, Integer pageNumber
, AuditEventSort sort
, List
<String
> propertyPaths
) {
87 return defaultCollectionService
.pageAuditEvents(t
, pageSize
, pageNumber
, sort
, propertyPaths
);
96 * @param propertyPaths
98 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getAnnotations(eu.etaxonomy.cdm.model.common.AnnotatableEntity, eu.etaxonomy.cdm.model.common.MarkerType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
101 public Pager
<Annotation
> getAnnotations(Collection annotatedObj
, MarkerType status
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
102 return defaultCollectionService
.getAnnotations(annotatedObj
, status
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
107 * @see eu.etaxonomy.cdm.api.service.IService#clear()
110 public void clear() {
111 defaultCollectionService
.clear();
117 * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
120 public void lock(Collection t
, LockMode lockMode
) {
121 defaultCollectionService
.lock(t
, lockMode
);
127 * @param propertyPaths
128 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
131 public void refresh(Collection t
, LockMode lockMode
, List
<String
> propertyPaths
) {
132 defaultCollectionService
.refresh(t
, lockMode
, propertyPaths
);
137 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
140 public void updateTitleCache() {
141 defaultCollectionService
.updateTitleCache();
147 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
150 public AuditEventRecord
<Collection
> getNextAuditEvent(Collection t
) {
151 return defaultCollectionService
.getNextAuditEvent(t
);
157 * @see eu.etaxonomy.cdm.api.service.ICollectionService#searchByCode(java.lang.String)
160 public List
<Collection
> searchByCode(String code
) {
161 return defaultCollectionService
.searchByCode(code
);
165 * @param annotatableEntity
170 * @param propertyPaths
172 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#getMarkers(eu.etaxonomy.cdm.model.common.AnnotatableEntity, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
175 public Pager
<Marker
> getMarkers(Collection annotatableEntity
, Boolean technical
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
176 return defaultCollectionService
.getMarkers(annotatableEntity
, technical
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
182 * @param cacheStrategy
184 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Class, java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy, eu.etaxonomy.cdm.common.monitor.IProgressMonitor)
187 public void updateTitleCache(Class
<?
extends Collection
> clazz
, Integer stepSize
, IIdentifiableEntityCacheStrategy
<Collection
> cacheStrategy
, IProgressMonitor monitor
) {
188 defaultCollectionService
.updateTitleCache(clazz
, stepSize
, cacheStrategy
, monitor
);
194 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
197 public AuditEventRecord
<Collection
> getPreviousAuditEvent(Collection t
) {
198 return defaultCollectionService
.getPreviousAuditEvent(t
);
204 * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
207 public int count(Class
<?
extends Collection
> clazz
) {
208 return defaultCollectionService
.count(clazz
);
219 * @param propertyPaths
221 * @see eu.etaxonomy.cdm.api.service.IVersionableService#pageAuditEvents(java.lang.Class, eu.etaxonomy.cdm.model.view.AuditEvent, eu.etaxonomy.cdm.model.view.AuditEvent, java.util.List, java.lang.Integer, java.lang.Integer, eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort, java.util.List)
224 public Pager
<AuditEventRecord
<Collection
>> pageAuditEvents(Class
<?
extends Collection
> clazz
, AuditEvent from
, AuditEvent to
, List
<AuditCriterion
> criteria
, Integer pageSize
, Integer pageValue
, AuditEventSort sort
, List
<String
> propertyPaths
) {
225 return defaultCollectionService
.pageAuditEvents(clazz
, from
, to
, criteria
, pageSize
, pageValue
, sort
, propertyPaths
);
231 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
234 public Collection
find(LSID lsid
) {
235 return defaultCollectionService
.find(lsid
);
239 * @param persistentObject
241 * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
244 public UUID
delete(Collection persistentObject
) {
245 return defaultCollectionService
.delete(persistentObject
);
253 * @param propertyPaths
255 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
258 public List
<Object
[]> groupMarkers(Class
<?
extends Collection
> clazz
, Boolean technical
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
259 return defaultCollectionService
.groupMarkers(clazz
, technical
, pageSize
, pageNumber
, propertyPaths
);
265 * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
268 public boolean exists(UUID uuid
) {
269 return defaultCollectionService
.exists(uuid
);
276 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
279 public Collection
replace(Collection x
, Collection y
) {
280 return defaultCollectionService
.replace(x
, y
);
286 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
289 public List
<Collection
> find(Set
<UUID
> uuidSet
) {
290 return defaultCollectionService
.find(uuidSet
);
297 * @param propertyPaths
299 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
302 public Pager
<IdentifiableSource
> getSources(Collection t
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
303 return defaultCollectionService
.getSources(t
, pageSize
, pageNumber
, propertyPaths
);
309 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
312 public Collection
find(UUID uuid
) {
313 return defaultCollectionService
.find(uuid
);
319 * @see eu.etaxonomy.cdm.api.service.IService#find(int)
322 public Collection
find(int id
) {
323 return defaultCollectionService
.find(id
);
330 * @param propertyPaths
332 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
335 public Pager
<Rights
> getRights(Collection t
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
336 return defaultCollectionService
.getRights(t
, pageSize
, pageNumber
, propertyPaths
);
343 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
346 public int countMarkers(Class
<?
extends Collection
> clazz
, Boolean technical
) {
347 return defaultCollectionService
.countMarkers(clazz
, technical
);
353 * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
356 public List
<Collection
> findById(Set
<Integer
> idSet
) {
357 return defaultCollectionService
.findById(idSet
);
365 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
368 public ISourceable
getSourcedObjectByIdInSource(Class clazz
, String idInSource
, String idNamespace
) {
369 return defaultCollectionService
.getSourcedObjectByIdInSource(clazz
, idInSource
, idNamespace
);
374 * @see eu.etaxonomy.cdm.api.service.IService#getSession()
377 public Session
getSession() {
378 return defaultCollectionService
.getSession();
383 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
386 public List
<UuidAndTitleCache
<Collection
>> getUuidAndTitleCache() {
387 return defaultCollectionService
.getUuidAndTitleCache();
395 * @param propertyPaths
397 * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
400 public List
<Object
[]> group(Class
<?
extends Collection
> clazz
, Integer limit
, Integer start
, List
<Grouping
> groups
, List
<String
> propertyPaths
) {
401 return defaultCollectionService
.group(clazz
, limit
, start
, groups
, propertyPaths
);
412 * @param propertyPaths
414 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
417 public Pager
<Collection
> findByTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
418 return defaultCollectionService
.findByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
426 * @param propertyPaths
428 * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
431 public List
<Collection
> list(Class
<?
extends Collection
> type
, Integer limit
, Integer start
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
432 return defaultCollectionService
.list(type
, limit
, start
, orderHints
, propertyPaths
);
436 * @param configurator
438 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
441 public Pager
<Collection
> findByTitle(IIdentifiableEntityServiceConfigurator
<Collection
> configurator
) {
442 return defaultCollectionService
.findByTitle(configurator
);
451 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
454 public Integer
countByTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
) {
455 return defaultCollectionService
.countByTitle(clazz
, queryString
, matchmode
, criteria
);
461 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
464 public Collection
load(UUID uuid
) {
465 return defaultCollectionService
.load(uuid
);
470 * @param propertyPaths
472 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
475 public Collection
load(UUID uuid
, List
<String
> propertyPaths
) {
476 return defaultCollectionService
.load(uuid
, propertyPaths
);
480 * @param configurator
482 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
485 public Integer
countByTitle(IIdentifiableEntityServiceConfigurator
<Collection
> configurator
) {
486 return defaultCollectionService
.countByTitle(configurator
);
490 * @param transientObject
492 * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
495 public Collection
merge(Collection transientObject
) {
496 return defaultCollectionService
.merge(transientObject
);
507 * @param propertyPaths
509 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
512 public List
<Collection
> listByTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
513 return defaultCollectionService
.listByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
521 * @param propertyPaths
523 * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
526 public Pager
<Collection
> page(Class
<?
extends Collection
> type
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
527 return defaultCollectionService
.page(type
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
531 * @param persistentObject
533 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
536 public UUID
refresh(Collection persistentObject
) {
537 return defaultCollectionService
.refresh(persistentObject
);
548 * @param propertyPaths
550 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#listByReferenceTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
553 public List
<Collection
> listByReferenceTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
554 return defaultCollectionService
.listByReferenceTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
562 * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
565 public List
<Collection
> rows(String tableName
, int limit
, int start
) {
566 return defaultCollectionService
.rows(tableName
, limit
, start
);
570 * @param newInstances
572 * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
575 public Map
<UUID
, Collection
> save(java
.util
.Collection
<Collection
> newInstances
) {
580 * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
583 public UUID
save(Collection newInstance
) {
588 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
591 public UUID
saveOrUpdate(Collection transientObject
) {
596 * @param transientObjects
598 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
601 public Map
<UUID
, Collection
> saveOrUpdate(java
.util
.Collection
<Collection
> transientObjects
) {
606 * @param transientObject
608 * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
611 public UUID
update(Collection transientObject
) {
612 return defaultCollectionService
.update(transientObject
);
617 * @param includeProperties
621 * @param propertyPaths
623 * @see eu.etaxonomy.cdm.api.service.IService#list(eu.etaxonomy.cdm.model.common.ICdmBase, java.util.Set, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
626 public List
<Collection
> list(Collection example
, Set
<String
> includeProperties
, Integer limit
, Integer start
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
627 return defaultCollectionService
.list(example
, includeProperties
, limit
, start
, orderHints
, propertyPaths
);
632 * @param matchStrategy
633 * @param mergeStrategy
635 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
638 public int deduplicate(Class
<?
extends Collection
> clazz
, IMatchStrategy matchStrategy
, IMergeStrategy mergeStrategy
) {
639 return defaultCollectionService
.deduplicate(clazz
, matchStrategy
, mergeStrategy
);
650 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findTitleCache(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, eu.etaxonomy.cdm.persistence.query.MatchMode)
653 public Pager
<Collection
> findTitleCache(Class
<?
extends Collection
> clazz
, String queryString
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, MatchMode matchMode
) {
654 return defaultCollectionService
.findTitleCache(clazz
, queryString
, pageSize
, pageNumber
, orderHints
, matchMode
);