3 * Copyright (C) 2014 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
.editor
.view
.dataimport
.transientServices
;
12 import java
.util
.List
;
15 import java
.util
.UUID
;
17 import org
.hibernate
.LockOptions
;
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
.DeleteResult
;
23 import eu
.etaxonomy
.cdm
.api
.service
.ICollectionService
;
24 import eu
.etaxonomy
.cdm
.api
.service
.config
.DeleteConfiguratorBase
;
25 import eu
.etaxonomy
.cdm
.api
.service
.config
.IIdentifiableEntityServiceConfigurator
;
26 import eu
.etaxonomy
.cdm
.api
.service
.dto
.FindByIdentifierDTO
;
27 import eu
.etaxonomy
.cdm
.api
.service
.pager
.Pager
;
28 import eu
.etaxonomy
.cdm
.common
.monitor
.IProgressMonitor
;
29 import eu
.etaxonomy
.cdm
.model
.common
.Annotation
;
30 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTerm
;
31 import eu
.etaxonomy
.cdm
.model
.common
.ISourceable
;
32 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableSource
;
33 import eu
.etaxonomy
.cdm
.model
.common
.LSID
;
34 import eu
.etaxonomy
.cdm
.model
.common
.Marker
;
35 import eu
.etaxonomy
.cdm
.model
.common
.MarkerType
;
36 import eu
.etaxonomy
.cdm
.model
.media
.Rights
;
37 import eu
.etaxonomy
.cdm
.model
.occurrence
.Collection
;
38 import eu
.etaxonomy
.cdm
.model
.view
.AuditEvent
;
39 import eu
.etaxonomy
.cdm
.model
.view
.AuditEventRecord
;
40 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.AuditEventSort
;
41 import eu
.etaxonomy
.cdm
.persistence
.dto
.UuidAndTitleCache
;
42 import eu
.etaxonomy
.cdm
.persistence
.query
.Grouping
;
43 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
44 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
45 import eu
.etaxonomy
.cdm
.strategy
.cache
.common
.IIdentifiableEntityCacheStrategy
;
46 import eu
.etaxonomy
.cdm
.strategy
.match
.IMatchStrategy
;
47 import eu
.etaxonomy
.cdm
.strategy
.merge
.IMergeStrategy
;
54 public class TransientCollectionService
implements ICollectionService
{
56 private final ICollectionService defaultService
;
62 public DeleteResult
delete(UUID arg0
) {
63 return defaultService
.delete(arg0
);
67 * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
70 public UUID
save(Collection newInstance
) {
75 * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
78 public Map
<UUID
, Collection
> save(java
.util
.Collection
<Collection
> newInstances
) {
83 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
86 public UUID
saveOrUpdate(Collection transientObject
) {
91 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
94 public Map
<UUID
, Collection
> saveOrUpdate(java
.util
.Collection
<Collection
> transientObjects
) {
99 * @param defaultService
101 public TransientCollectionService(ICollectionService defaultService
) {
102 this.defaultService
= defaultService
;
111 * @param propertyPaths
113 * @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)
116 public Pager
<Collection
> search(Class
<?
extends Collection
> clazz
, String query
, Integer pageSize
,
117 Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
118 return defaultService
.search(clazz
, query
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
122 * @param annotatedObj
127 * @param propertyPaths
129 * @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)
132 public Pager
<Annotation
> getAnnotations(Collection annotatedObj
, MarkerType status
, Integer pageSize
,
133 Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
134 return defaultService
.getAnnotations(annotatedObj
, status
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
142 * @param propertyPaths
144 * @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)
147 public Pager
<AuditEventRecord
<Collection
>> pageAuditEvents(Collection t
, Integer pageSize
, Integer pageNumber
,
148 AuditEventSort sort
, List
<String
> propertyPaths
) {
149 return defaultService
.pageAuditEvents(t
, pageSize
, pageNumber
, sort
, propertyPaths
);
154 * @see eu.etaxonomy.cdm.api.service.IService#clear()
157 public void clear() {
158 defaultService
.clear();
164 * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockOptions)
167 public void lock(Collection t
, LockOptions lockOptions
) {
168 defaultService
.lock(t
, lockOptions
);
174 * @param propertyPaths
175 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockOptions, java.util.List)
178 public void refresh(Collection t
, LockOptions lockOptions
, List
<String
> propertyPaths
) {
179 defaultService
.refresh(t
, lockOptions
, propertyPaths
);
184 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
187 public void updateTitleCache() {
188 defaultService
.updateTitleCache();
194 * @see eu.etaxonomy.cdm.api.service.ICollectionService#searchByCode(java.lang.String)
197 public List
<Collection
> searchByCode(String code
) {
198 return defaultService
.searchByCode(code
);
204 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
207 public AuditEventRecord
<Collection
> getNextAuditEvent(Collection t
) {
208 return defaultService
.getNextAuditEvent(t
);
214 * @param cacheStrategy
216 * @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)
219 public void updateTitleCache(Class
<?
extends Collection
> clazz
, Integer stepSize
,
220 IIdentifiableEntityCacheStrategy
<Collection
> cacheStrategy
, IProgressMonitor monitor
) {
221 defaultService
.updateTitleCache(clazz
, stepSize
, cacheStrategy
, monitor
);
225 * @param annotatableEntity
230 * @param propertyPaths
232 * @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)
235 public Pager
<Marker
> getMarkers(Collection annotatableEntity
, Boolean technical
, Integer pageSize
,
236 Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
237 return defaultService
.getMarkers(annotatableEntity
, technical
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
243 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
246 public AuditEventRecord
<Collection
> getPreviousAuditEvent(Collection t
) {
247 return defaultService
.getPreviousAuditEvent(t
);
253 * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
256 public int count(Class
<?
extends Collection
> clazz
) {
257 return defaultService
.count(clazz
);
263 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
266 public Collection
find(LSID lsid
) {
267 return defaultService
.find(lsid
);
278 * @param propertyPaths
280 * @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)
283 public Pager
<AuditEventRecord
<Collection
>> pageAuditEvents(Class
<?
extends Collection
> clazz
, AuditEvent from
,
284 AuditEvent to
, List
<AuditCriterion
> criteria
, Integer pageSize
, Integer pageValue
, AuditEventSort sort
,
285 List
<String
> propertyPaths
) {
286 return defaultService
.pageAuditEvents(clazz
, from
, to
, criteria
, pageSize
, pageValue
, sort
, propertyPaths
);
290 * @param persistentObject
292 * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
295 public DeleteResult
delete(Collection persistentObject
) {
296 return defaultService
.delete(persistentObject
);
304 * @param propertyPaths
306 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
309 public List
<Object
[]> groupMarkers(Class
<?
extends Collection
> clazz
, Boolean technical
, Integer pageSize
,
310 Integer pageNumber
, List
<String
> propertyPaths
) {
311 return defaultService
.groupMarkers(clazz
, technical
, pageSize
, pageNumber
, propertyPaths
);
318 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
321 public Collection
replace(Collection x
, Collection y
) {
322 return defaultService
.replace(x
, y
);
328 * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
331 public boolean exists(UUID uuid
) {
332 return defaultService
.exists(uuid
);
339 * @param propertyPaths
341 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
344 public Pager
<IdentifiableSource
> getSources(Collection t
, Integer pageSize
, Integer pageNumber
,
345 List
<String
> propertyPaths
) {
346 return defaultService
.getSources(t
, pageSize
, pageNumber
, propertyPaths
);
352 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
355 public List
<Collection
> find(Set
<UUID
> uuidSet
) {
356 return defaultService
.find(uuidSet
);
362 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
365 public Collection
find(UUID uuid
) {
366 return defaultService
.find(uuid
);
373 * @param propertyPaths
375 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
378 public Pager
<Rights
> getRights(Collection t
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
379 return defaultService
.getRights(t
, pageSize
, pageNumber
, propertyPaths
);
386 * @see eu.etaxonomy.cdm.api.service.IVersionableService#isDeletable(eu.etaxonomy.cdm.model.common.VersionableEntity, eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase)
389 public DeleteResult
isDeletable(Collection object
, DeleteConfiguratorBase config
) {
390 return defaultService
.isDeletable(object
, config
);
397 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
400 public int countMarkers(Class
<?
extends Collection
> clazz
, Boolean technical
) {
401 return defaultService
.countMarkers(clazz
, technical
);
407 * @see eu.etaxonomy.cdm.api.service.IService#findWithoutFlush(java.util.UUID)
410 public Collection
findWithoutFlush(UUID uuid
) {
411 return defaultService
.findWithoutFlush(uuid
);
419 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
422 public ISourceable
getSourcedObjectByIdInSource(Class clazz
, String idInSource
, String idNamespace
) {
423 return defaultService
.getSourcedObjectByIdInSource(clazz
, idInSource
, idNamespace
);
428 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
431 public List
<UuidAndTitleCache
<Collection
>> getUuidAndTitleCache() {
432 return defaultService
.getUuidAndTitleCache();
443 * @param propertyPaths
445 * @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)
448 public Pager
<Collection
> findByTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
,
449 List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
,
450 List
<String
> propertyPaths
) {
451 return defaultService
.findByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
,
458 * @see eu.etaxonomy.cdm.api.service.IService#find(int)
461 public Collection
find(int id
) {
462 return defaultService
.find(id
);
468 * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
471 public List
<Collection
> findById(Set
<Integer
> idSet
) {
472 return defaultService
.findById(idSet
);
477 * @see eu.etaxonomy.cdm.api.service.IService#getSession()
480 public Session
getSession() {
481 return defaultService
.getSession();
485 * @param configurator
487 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
490 public Pager
<Collection
> findByTitle(IIdentifiableEntityServiceConfigurator
<Collection
> configurator
) {
491 return defaultService
.findByTitle(configurator
);
499 * @param propertyPaths
501 * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
504 public List
<Object
[]> group(Class
<?
extends Collection
> clazz
, Integer limit
, Integer start
, List
<Grouping
> groups
,
505 List
<String
> propertyPaths
) {
506 return defaultService
.group(clazz
, limit
, start
, groups
, propertyPaths
);
515 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
518 public Integer
countByTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
,
519 List
<Criterion
> criteria
) {
520 return defaultService
.countByTitle(clazz
, queryString
, matchmode
, criteria
);
524 * @param configurator
526 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
529 public Integer
countByTitle(IIdentifiableEntityServiceConfigurator
<Collection
> configurator
) {
530 return defaultService
.countByTitle(configurator
);
538 * @param propertyPaths
540 * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
543 public <S
extends Collection
> List
<S
> list(Class
<S
> type
, Integer limit
, Integer start
, List
<OrderHint
> orderHints
,
544 List
<String
> propertyPaths
) {
545 return defaultService
.list(type
, limit
, start
, orderHints
, propertyPaths
);
556 * @param propertyPaths
558 * @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)
561 public List
<Collection
> listByTitle(Class
<?
extends Collection
> clazz
, String queryString
, MatchMode matchmode
,
562 List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
,
563 List
<String
> propertyPaths
) {
564 return defaultService
.listByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
,
571 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
574 public Collection
load(UUID uuid
) {
575 return defaultService
.load(uuid
);
586 * @param propertyPaths
588 * @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)
591 public List
<Collection
> listByReferenceTitle(Class
<?
extends Collection
> clazz
, String queryString
,
592 MatchMode matchmode
, List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
,
593 List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
594 return defaultService
.listByReferenceTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
,
595 orderHints
, propertyPaths
);
600 * @param propertyPaths
602 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
605 public Collection
load(UUID uuid
, List
<String
> propertyPaths
) {
606 return defaultService
.load(uuid
, propertyPaths
);
610 * @param transientObject
612 * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
615 public Collection
merge(Collection transientObject
) {
616 return defaultService
.merge(transientObject
);
624 * @param propertyPaths
626 * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
629 public <S
extends Collection
> Pager
<S
> page(Class
<S
> type
, Integer pageSize
, Integer pageNumber
,
630 List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
631 return defaultService
.page(type
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
635 * @param persistentObject
637 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
640 public UUID
refresh(Collection persistentObject
) {
641 return defaultService
.refresh(persistentObject
);
649 * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
652 public List
<Collection
> rows(String tableName
, int limit
, int start
) {
653 return defaultService
.rows(tableName
, limit
, start
);
658 * @param matchStrategy
659 * @param mergeStrategy
661 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
664 public int deduplicate(Class
<?
extends Collection
> clazz
, IMatchStrategy matchStrategy
, IMergeStrategy mergeStrategy
) {
665 return defaultService
.deduplicate(clazz
, matchStrategy
, mergeStrategy
);
676 * @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)
679 public Pager
<Collection
> findTitleCache(Class
<?
extends Collection
> clazz
, String queryString
, Integer pageSize
,
680 Integer pageNumber
, List
<OrderHint
> orderHints
, MatchMode matchMode
) {
681 return defaultService
.findTitleCache(clazz
, queryString
, pageSize
, pageNumber
, orderHints
, matchMode
);
685 * @param transientObject
687 * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
690 public UUID
update(Collection transientObject
) {
691 return defaultService
.update(transientObject
);
696 * @param includeProperties
700 * @param propertyPaths
702 * @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)
705 public List
<Collection
> list(Collection example
, Set
<String
> includeProperties
, Integer limit
, Integer start
,
706 List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
707 return defaultService
.list(example
, includeProperties
, limit
, start
, orderHints
, propertyPaths
);
711 public <S
extends Collection
> Pager
<FindByIdentifierDTO
<S
>> findByIdentifier(Class
<S
> clazz
, String identifier
, DefinedTerm identifierType
, MatchMode matchmode
, boolean includeEntity
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
){
712 return defaultService
.findByIdentifier(clazz
, identifier
, identifierType
, matchmode
, includeEntity
, pageSize
, pageNumber
, propertyPaths
);