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
.exception
.ReferencedObjectUndeletableException
;
25 import eu
.etaxonomy
.cdm
.api
.service
.pager
.Pager
;
26 import eu
.etaxonomy
.cdm
.common
.monitor
.IProgressMonitor
;
27 import eu
.etaxonomy
.cdm
.model
.common
.Annotation
;
28 import eu
.etaxonomy
.cdm
.model
.common
.ISourceable
;
29 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableSource
;
30 import eu
.etaxonomy
.cdm
.model
.common
.LSID
;
31 import eu
.etaxonomy
.cdm
.model
.common
.Marker
;
32 import eu
.etaxonomy
.cdm
.model
.common
.MarkerType
;
33 import eu
.etaxonomy
.cdm
.model
.common
.UuidAndTitleCache
;
34 import eu
.etaxonomy
.cdm
.model
.media
.Rights
;
35 import eu
.etaxonomy
.cdm
.model
.occurrence
.Collection
;
36 import eu
.etaxonomy
.cdm
.model
.view
.AuditEvent
;
37 import eu
.etaxonomy
.cdm
.model
.view
.AuditEventRecord
;
38 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.AuditEventSort
;
39 import eu
.etaxonomy
.cdm
.persistence
.query
.Grouping
;
40 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
41 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
42 import eu
.etaxonomy
.cdm
.strategy
.cache
.common
.IIdentifiableEntityCacheStrategy
;
43 import eu
.etaxonomy
.cdm
.strategy
.match
.IMatchStrategy
;
44 import eu
.etaxonomy
.cdm
.strategy
.merge
.IMergeStrategy
;
51 public class TransientCollectionService
implements ICollectionService
{
53 private ICollectionService defaultCollectionService
;
56 * @param defaultCollectionService
58 public TransientCollectionService(ICollectionService defaultCollectionService
) {
59 this.defaultCollectionService
= defaultCollectionService
;
68 * @param propertyPaths
70 * @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)
73 public Pager
<Collection
> search(Class
<?
extends Collection
> clazz
, String query
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
74 return defaultCollectionService
.search(clazz
, query
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
82 * @param propertyPaths
84 * @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)
87 public Pager
<AuditEventRecord
<Collection
>> pageAuditEvents(Collection t
, Integer pageSize
, Integer pageNumber
, AuditEventSort sort
, List
<String
> propertyPaths
) {
88 return defaultCollectionService
.pageAuditEvents(t
, pageSize
, pageNumber
, sort
, propertyPaths
);
97 * @param propertyPaths
99 * @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)
102 public Pager
<Annotation
> getAnnotations(Collection annotatedObj
, MarkerType status
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
103 return defaultCollectionService
.getAnnotations(annotatedObj
, status
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
108 * @see eu.etaxonomy.cdm.api.service.IService#clear()
111 public void clear() {
112 defaultCollectionService
.clear();
118 * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
121 public void lock(Collection t
, LockMode lockMode
) {
122 defaultCollectionService
.lock(t
, lockMode
);
128 * @param propertyPaths
129 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
132 public void refresh(Collection t
, LockMode lockMode
, List
<String
> propertyPaths
) {
133 defaultCollectionService
.refresh(t
, lockMode
, propertyPaths
);
138 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
141 public void updateTitleCache() {
142 defaultCollectionService
.updateTitleCache();
148 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
151 public AuditEventRecord
<Collection
> getNextAuditEvent(Collection t
) {
152 return defaultCollectionService
.getNextAuditEvent(t
);
158 * @see eu.etaxonomy.cdm.api.service.ICollectionService#searchByCode(java.lang.String)
161 public List
<Collection
> searchByCode(String code
) {
162 return defaultCollectionService
.searchByCode(code
);
166 * @param annotatableEntity
171 * @param propertyPaths
173 * @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)
176 public Pager
<Marker
> getMarkers(Collection annotatableEntity
, Boolean technical
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
177 return defaultCollectionService
.getMarkers(annotatableEntity
, technical
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
183 * @param cacheStrategy
185 * @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)
188 public void updateTitleCache(Class
<?
extends Collection
> clazz
, Integer stepSize
, IIdentifiableEntityCacheStrategy
<Collection
> cacheStrategy
, IProgressMonitor monitor
) {
189 defaultCollectionService
.updateTitleCache(clazz
, stepSize
, cacheStrategy
, monitor
);
195 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
198 public AuditEventRecord
<Collection
> getPreviousAuditEvent(Collection t
) {
199 return defaultCollectionService
.getPreviousAuditEvent(t
);
205 * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
208 public int count(Class
<?
extends Collection
> clazz
) {
209 return defaultCollectionService
.count(clazz
);
220 * @param propertyPaths
222 * @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)
225 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
) {
226 return defaultCollectionService
.pageAuditEvents(clazz
, from
, to
, criteria
, pageSize
, pageValue
, sort
, propertyPaths
);
232 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
235 public Collection
find(LSID lsid
) {
236 return defaultCollectionService
.find(lsid
);
240 * @param persistentObject
242 * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
245 public UUID
delete(Collection persistentObject
) throws ReferencedObjectUndeletableException
{
246 return defaultCollectionService
.delete(persistentObject
);
254 * @param propertyPaths
256 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
259 public List
<Object
[]> groupMarkers(Class
<?
extends Collection
> clazz
, Boolean technical
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
260 return defaultCollectionService
.groupMarkers(clazz
, technical
, pageSize
, pageNumber
, propertyPaths
);
266 * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
269 public boolean exists(UUID uuid
) {
270 return defaultCollectionService
.exists(uuid
);
277 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
280 public Collection
replace(Collection x
, Collection y
) {
281 return defaultCollectionService
.replace(x
, y
);
287 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
290 public List
<Collection
> find(Set
<UUID
> uuidSet
) {
291 return defaultCollectionService
.find(uuidSet
);
298 * @param propertyPaths
300 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
303 public Pager
<IdentifiableSource
> getSources(Collection t
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
304 return defaultCollectionService
.getSources(t
, pageSize
, pageNumber
, propertyPaths
);
310 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
313 public Collection
find(UUID uuid
) {
314 return defaultCollectionService
.find(uuid
);
320 * @see eu.etaxonomy.cdm.api.service.IService#find(int)
323 public Collection
find(int id
) {
324 return defaultCollectionService
.find(id
);
331 * @param propertyPaths
333 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
336 public Pager
<Rights
> getRights(Collection t
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
337 return defaultCollectionService
.getRights(t
, pageSize
, pageNumber
, propertyPaths
);
344 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
347 public int countMarkers(Class
<?
extends Collection
> clazz
, Boolean technical
) {
348 return defaultCollectionService
.countMarkers(clazz
, technical
);
354 * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
357 public List
<Collection
> findById(Set
<Integer
> idSet
) {
358 return defaultCollectionService
.findById(idSet
);
366 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
369 public ISourceable
getSourcedObjectByIdInSource(Class clazz
, String idInSource
, String idNamespace
) {
370 return defaultCollectionService
.getSourcedObjectByIdInSource(clazz
, idInSource
, idNamespace
);
375 * @see eu.etaxonomy.cdm.api.service.IService#getSession()
378 public Session
getSession() {
379 return defaultCollectionService
.getSession();
384 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
387 public List
<UuidAndTitleCache
<Collection
>> getUuidAndTitleCache() {
388 return defaultCollectionService
.getUuidAndTitleCache();
396 * @param propertyPaths
398 * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
401 public List
<Object
[]> group(Class
<?
extends Collection
> clazz
, Integer limit
, Integer start
, List
<Grouping
> groups
, List
<String
> propertyPaths
) {
402 return defaultCollectionService
.group(clazz
, limit
, start
, groups
, propertyPaths
);
413 * @param propertyPaths
415 * @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)
418 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
) {
419 return defaultCollectionService
.findByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
427 * @param propertyPaths
429 * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
432 public List
<Collection
> list(Class
<?
extends Collection
> type
, Integer limit
, Integer start
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
433 return defaultCollectionService
.list(type
, limit
, start
, orderHints
, propertyPaths
);
437 * @param configurator
439 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
442 public Pager
<Collection
> findByTitle(IIdentifiableEntityServiceConfigurator
<Collection
> configurator
) {
443 return defaultCollectionService
.findByTitle(configurator
);
452 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
455 public Integer
countByTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
) {
456 return defaultCollectionService
.countByTitle(clazz
, queryString
, matchmode
, criteria
);
462 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
465 public Collection
load(UUID uuid
) {
466 return defaultCollectionService
.load(uuid
);
471 * @param propertyPaths
473 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
476 public Collection
load(UUID uuid
, List
<String
> propertyPaths
) {
477 return defaultCollectionService
.load(uuid
, propertyPaths
);
481 * @param configurator
483 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
486 public Integer
countByTitle(IIdentifiableEntityServiceConfigurator
<Collection
> configurator
) {
487 return defaultCollectionService
.countByTitle(configurator
);
491 * @param transientObject
493 * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
496 public Collection
merge(Collection transientObject
) {
497 return defaultCollectionService
.merge(transientObject
);
508 * @param propertyPaths
510 * @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)
513 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
) {
514 return defaultCollectionService
.listByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
522 * @param propertyPaths
524 * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
527 public Pager
<Collection
> page(Class
<?
extends Collection
> type
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
528 return defaultCollectionService
.page(type
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
532 * @param persistentObject
534 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
537 public UUID
refresh(Collection persistentObject
) {
538 return defaultCollectionService
.refresh(persistentObject
);
549 * @param propertyPaths
551 * @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)
554 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
) {
555 return defaultCollectionService
.listByReferenceTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
563 * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
566 public List
<Collection
> rows(String tableName
, int limit
, int start
) {
567 return defaultCollectionService
.rows(tableName
, limit
, start
);
571 * @param newInstances
573 * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
576 public Map
<UUID
, Collection
> save(java
.util
.Collection
<Collection
> newInstances
) {
581 * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
584 public UUID
save(Collection newInstance
) {
589 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
592 public UUID
saveOrUpdate(Collection transientObject
) {
597 * @param transientObjects
599 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
602 public Map
<UUID
, Collection
> saveOrUpdate(java
.util
.Collection
<Collection
> transientObjects
) {
607 * @param transientObject
609 * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
612 public UUID
update(Collection transientObject
) {
613 return defaultCollectionService
.update(transientObject
);
618 * @param includeProperties
622 * @param propertyPaths
624 * @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)
627 public List
<Collection
> list(Collection example
, Set
<String
> includeProperties
, Integer limit
, Integer start
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
628 return defaultCollectionService
.list(example
, includeProperties
, limit
, start
, orderHints
, propertyPaths
);
633 * @param matchStrategy
634 * @param mergeStrategy
636 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
639 public int deduplicate(Class
<?
extends Collection
> clazz
, IMatchStrategy matchStrategy
, IMergeStrategy mergeStrategy
) {
640 return defaultCollectionService
.deduplicate(clazz
, matchStrategy
, mergeStrategy
);
651 * @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)
654 public Pager
<Collection
> findTitleCache(Class
<?
extends Collection
> clazz
, String queryString
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, MatchMode matchMode
) {
655 return defaultCollectionService
.findTitleCache(clazz
, queryString
, pageSize
, pageNumber
, orderHints
, matchMode
);