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
.editor
.view
.dataimport
.transientServices
;
12 import java
.util
.Collection
;
13 import java
.util
.List
;
16 import java
.util
.UUID
;
18 import org
.hibernate
.LockOptions
;
19 import org
.hibernate
.Session
;
20 import org
.hibernate
.criterion
.Criterion
;
21 import org
.hibernate
.envers
.query
.criteria
.AuditCriterion
;
23 import eu
.etaxonomy
.cdm
.api
.service
.DeleteResult
;
24 import eu
.etaxonomy
.cdm
.api
.service
.IReferenceService
;
25 import eu
.etaxonomy
.cdm
.api
.service
.config
.DeleteConfiguratorBase
;
26 import eu
.etaxonomy
.cdm
.api
.service
.config
.IIdentifiableEntityServiceConfigurator
;
27 import eu
.etaxonomy
.cdm
.api
.service
.dto
.FindByIdentifierDTO
;
28 import eu
.etaxonomy
.cdm
.api
.service
.pager
.Pager
;
29 import eu
.etaxonomy
.cdm
.common
.monitor
.IProgressMonitor
;
30 import eu
.etaxonomy
.cdm
.model
.common
.Annotation
;
31 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTerm
;
32 import eu
.etaxonomy
.cdm
.model
.common
.ISourceable
;
33 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableSource
;
34 import eu
.etaxonomy
.cdm
.model
.common
.LSID
;
35 import eu
.etaxonomy
.cdm
.model
.common
.Marker
;
36 import eu
.etaxonomy
.cdm
.model
.common
.MarkerType
;
37 import eu
.etaxonomy
.cdm
.model
.media
.Rights
;
38 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
39 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
40 import eu
.etaxonomy
.cdm
.model
.view
.AuditEvent
;
41 import eu
.etaxonomy
.cdm
.model
.view
.AuditEventRecord
;
42 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.AuditEventSort
;
43 import eu
.etaxonomy
.cdm
.persistence
.dto
.UuidAndTitleCache
;
44 import eu
.etaxonomy
.cdm
.persistence
.query
.Grouping
;
45 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
46 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
47 import eu
.etaxonomy
.cdm
.strategy
.cache
.common
.IIdentifiableEntityCacheStrategy
;
48 import eu
.etaxonomy
.cdm
.strategy
.match
.IMatchStrategy
;
49 import eu
.etaxonomy
.cdm
.strategy
.merge
.IMergeStrategy
;
56 public class TransientReferenceService
implements IReferenceService
{
58 private final IReferenceService defaultService
;
61 * @param defaultReferenceService
63 public TransientReferenceService(IReferenceService defaultReferenceService
) {
64 this.defaultService
= defaultReferenceService
;
73 * @param propertyPaths
75 * @see eu.etaxonomy.cdm.api.service.IReferenceService#search(java.lang.Class, java.lang.String, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
78 public Pager
<Reference
> search(Class
<?
extends Reference
> clazz
, String queryString
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
79 return defaultService
.search(clazz
, queryString
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
87 * @param propertyPaths
89 * @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)
92 public Pager
<AuditEventRecord
<Reference
>> pageAuditEvents(Reference t
, Integer pageSize
, Integer pageNumber
, AuditEventSort sort
, List
<String
> propertyPaths
) {
93 return defaultService
.pageAuditEvents(t
, pageSize
, pageNumber
, sort
, propertyPaths
);
102 * @param propertyPaths
104 * @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)
107 public Pager
<Annotation
> getAnnotations(Reference annotatedObj
, MarkerType status
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
108 return defaultService
.getAnnotations(annotatedObj
, status
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
113 * @see eu.etaxonomy.cdm.api.service.IService#clear()
116 public void clear() {
117 defaultService
.clear();
123 * @see eu.etaxonomy.cdm.api.service.IService#lock(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode)
126 public void lock(Reference t
, LockOptions lockOptions
) {
127 defaultService
.lock(t
, lockOptions
);
133 * @param propertyPaths
134 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase, org.hibernate.LockMode, java.util.List)
137 public void refresh(Reference t
, LockOptions lockOptions
, List
<String
> propertyPaths
) {
138 defaultService
.refresh(t
, lockOptions
, propertyPaths
);
143 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
146 public void updateTitleCache() {
147 defaultService
.updateTitleCache();
153 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getNextAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
156 public AuditEventRecord
<Reference
> getNextAuditEvent(Reference t
) {
157 return defaultService
.getNextAuditEvent(t
);
161 * @param annotatableEntity
166 * @param propertyPaths
168 * @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)
171 public Pager
<Marker
> getMarkers(Reference annotatableEntity
, Boolean technical
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
172 return defaultService
.getMarkers(annotatableEntity
, technical
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
177 * @see eu.etaxonomy.cdm.api.service.IReferenceService#getUuidAndTitle()
180 public List
<UuidAndTitleCache
<Reference
>> getUuidAndTitle() {
181 return defaultService
.getUuidAndTitle();
187 * @param cacheStrategy
189 * @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)
192 public void updateTitleCache(Class
<?
extends Reference
> clazz
, Integer stepSize
, IIdentifiableEntityCacheStrategy
<Reference
> cacheStrategy
, IProgressMonitor monitor
) {
193 defaultService
.updateTitleCache(clazz
, stepSize
, cacheStrategy
, monitor
);
199 * @see eu.etaxonomy.cdm.api.service.IVersionableService#getPreviousAuditEvent(eu.etaxonomy.cdm.model.common.VersionableEntity)
202 public AuditEventRecord
<Reference
> getPreviousAuditEvent(Reference t
) {
203 return defaultService
.getPreviousAuditEvent(t
);
208 * @see eu.etaxonomy.cdm.api.service.IReferenceService#getAllReferencesForPublishing()
211 public List
<Reference
> getAllReferencesForPublishing() {
212 return defaultService
.getAllReferencesForPublishing();
218 * @see eu.etaxonomy.cdm.api.service.IService#count(java.lang.Class)
221 public int count(Class
<?
extends Reference
> clazz
) {
222 return defaultService
.count(clazz
);
227 * @see eu.etaxonomy.cdm.api.service.IReferenceService#getAllNomenclaturalReferences()
230 public List
<Reference
> getAllNomenclaturalReferences() {
231 return defaultService
.getAllNomenclaturalReferences();
236 * @param includeSubordinateReferences
237 * @param propertyPaths
239 * @see eu.etaxonomy.cdm.api.service.IReferenceService#listCoveredTaxa(eu.etaxonomy.cdm.model.reference.Reference, boolean, java.util.List)
242 public List
<TaxonBase
> listCoveredTaxa(Reference reference
, boolean includeSubordinateReferences
, List
<String
> propertyPaths
) {
243 return defaultService
.listCoveredTaxa(reference
, includeSubordinateReferences
, propertyPaths
);
254 * @param propertyPaths
256 * @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)
259 public Pager
<AuditEventRecord
<Reference
>> pageAuditEvents(Class
<?
extends Reference
> clazz
, AuditEvent from
, AuditEvent to
, List
<AuditCriterion
> criteria
, Integer pageSize
, Integer pageValue
, AuditEventSort sort
, List
<String
> propertyPaths
) {
260 return defaultService
.pageAuditEvents(clazz
, from
, to
, criteria
, pageSize
, pageValue
, sort
, propertyPaths
);
266 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#find(eu.etaxonomy.cdm.model.common.LSID)
269 public Reference
find(LSID lsid
) {
270 return defaultService
.find(lsid
);
274 * @param persistentObject
276 * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
279 public DeleteResult
delete(Reference persistentObject
) {
280 return defaultService
.delete(persistentObject
);
288 * @param propertyPaths
290 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#groupMarkers(java.lang.Class, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.util.List)
293 public List
<Object
[]> groupMarkers(Class
<?
extends Reference
> clazz
, Boolean technical
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
294 return defaultService
.groupMarkers(clazz
, technical
, pageSize
, pageNumber
, propertyPaths
);
300 * @see eu.etaxonomy.cdm.api.service.IService#exists(java.util.UUID)
303 public boolean exists(UUID uuid
) {
304 return defaultService
.exists(uuid
);
311 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#replace(eu.etaxonomy.cdm.model.common.IdentifiableEntity, eu.etaxonomy.cdm.model.common.IdentifiableEntity)
314 public Reference
replace(Reference x
, Reference y
) {
315 return defaultService
.replace(x
, y
);
321 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.Set)
324 public List
<Reference
> find(Set
<UUID
> uuidSet
) {
325 return defaultService
.find(uuidSet
);
332 * @param propertyPaths
334 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSources(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
337 public Pager
<IdentifiableSource
> getSources(Reference t
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
338 return defaultService
.getSources(t
, pageSize
, pageNumber
, propertyPaths
);
344 * @see eu.etaxonomy.cdm.api.service.IService#find(java.util.UUID)
347 public Reference
find(UUID uuid
) {
348 return defaultService
.find(uuid
);
354 * @see eu.etaxonomy.cdm.api.service.IService#find(int)
357 public Reference
find(int id
) {
358 return defaultService
.find(id
);
365 * @param propertyPaths
367 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getRights(eu.etaxonomy.cdm.model.common.IdentifiableEntity, java.lang.Integer, java.lang.Integer, java.util.List)
370 public Pager
<Rights
> getRights(Reference t
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
) {
371 return defaultService
.getRights(t
, pageSize
, pageNumber
, propertyPaths
);
378 * @see eu.etaxonomy.cdm.api.service.IAnnotatableService#countMarkers(java.lang.Class, java.lang.Boolean)
381 public int countMarkers(Class
<?
extends Reference
> clazz
, Boolean technical
) {
382 return defaultService
.countMarkers(clazz
, technical
);
388 * @see eu.etaxonomy.cdm.api.service.IService#findById(java.util.Set)
391 public List
<Reference
> findById(Set
<Integer
> idSet
) {
392 return defaultService
.findById(idSet
);
400 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getSourcedObjectByIdInSource(java.lang.Class, java.lang.String, java.lang.String)
403 public ISourceable
getSourcedObjectByIdInSource(Class clazz
, String idInSource
, String idNamespace
) {
404 return defaultService
.getSourcedObjectByIdInSource(clazz
, idInSource
, idNamespace
);
409 * @see eu.etaxonomy.cdm.api.service.IService#getSession()
412 public Session
getSession() {
413 return defaultService
.getSession();
418 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#getUuidAndTitleCache()
421 public List
<UuidAndTitleCache
<Reference
>> getUuidAndTitleCache() {
422 return defaultService
.getUuidAndTitleCache();
430 * @param propertyPaths
432 * @see eu.etaxonomy.cdm.api.service.IService#group(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
435 public List
<Object
[]> group(Class
<?
extends Reference
> clazz
, Integer limit
, Integer start
, List
<Grouping
> groups
, List
<String
> propertyPaths
) {
436 return defaultService
.group(clazz
, limit
, start
, groups
, propertyPaths
);
447 * @param propertyPaths
449 * @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)
452 public Pager
<Reference
> findByTitle(Class
<?
extends Reference
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
453 return defaultService
.findByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
461 * @param propertyPaths
463 * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
466 public <S
extends Reference
> List
<S
> list(Class
<S
> type
, Integer limit
, Integer start
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
467 return defaultService
.list(type
, limit
, start
, orderHints
, propertyPaths
);
471 * @param configurator
473 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#findByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
476 public Pager
<Reference
> findByTitle(IIdentifiableEntityServiceConfigurator
<Reference
> configurator
) {
477 return defaultService
.findByTitle(configurator
);
486 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.persistence.query.MatchMode, java.util.List)
489 public Integer
countByTitle(Class
<?
extends Reference
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
) {
490 return defaultService
.countByTitle(clazz
, queryString
, matchmode
, criteria
);
496 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID)
499 public Reference
load(UUID uuid
) {
500 return defaultService
.load(uuid
);
505 * @param propertyPaths
507 * @see eu.etaxonomy.cdm.api.service.IService#load(java.util.UUID, java.util.List)
510 public Reference
load(UUID uuid
, List
<String
> propertyPaths
) {
511 return defaultService
.load(uuid
, propertyPaths
);
515 * @param configurator
517 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#countByTitle(eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator)
520 public Integer
countByTitle(IIdentifiableEntityServiceConfigurator
<Reference
> configurator
) {
521 return defaultService
.countByTitle(configurator
);
525 * @param transientObject
527 * @see eu.etaxonomy.cdm.api.service.IService#merge(eu.etaxonomy.cdm.model.common.ICdmBase)
530 public Reference
merge(Reference transientObject
) {
531 return defaultService
.merge(transientObject
);
542 * @param propertyPaths
544 * @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)
547 public List
<Reference
> listByTitle(Class
<?
extends Reference
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
548 return defaultService
.listByTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
556 * @param propertyPaths
558 * @see eu.etaxonomy.cdm.api.service.IService#page(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
561 public <S
extends Reference
> Pager
<S
> page(Class
<S
> type
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
562 return defaultService
.page(type
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
566 * @param persistentObject
568 * @see eu.etaxonomy.cdm.api.service.IService#refresh(eu.etaxonomy.cdm.model.common.ICdmBase)
571 public UUID
refresh(Reference persistentObject
) {
572 return defaultService
.refresh(persistentObject
);
583 * @param propertyPaths
585 * @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)
588 public List
<Reference
> listByReferenceTitle(Class
<?
extends Reference
> clazz
, String queryString
, MatchMode matchmode
, List
<Criterion
> criteria
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
589 return defaultService
.listByReferenceTitle(clazz
, queryString
, matchmode
, criteria
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
597 * @see eu.etaxonomy.cdm.api.service.IService#rows(java.lang.String, int, int)
600 public List
<Reference
> rows(String tableName
, int limit
, int start
) {
601 return defaultService
.rows(tableName
, limit
, start
);
605 * @param newInstances
607 * @see eu.etaxonomy.cdm.api.service.IService#save(java.util.Collection)
610 public Map
<UUID
, Reference
> save(Collection
<Reference
> newInstances
) {
617 * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
620 public UUID
save(Reference newInstance
) {
625 * @param transientObject
627 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(eu.etaxonomy.cdm.model.common.ICdmBase)
630 public UUID
saveOrUpdate(Reference transientObject
) {
635 * @param transientObjects
637 * @see eu.etaxonomy.cdm.api.service.IService#saveOrUpdate(java.util.Collection)
640 public Map
<UUID
, Reference
> saveOrUpdate(Collection
<Reference
> transientObjects
) {
645 * @param transientObject
647 * @see eu.etaxonomy.cdm.api.service.IService#update(eu.etaxonomy.cdm.model.common.ICdmBase)
650 public UUID
update(Reference transientObject
) {
651 return defaultService
.update(transientObject
);
656 * @param includeProperties
660 * @param propertyPaths
662 * @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)
665 public List
<Reference
> list(Reference example
, Set
<String
> includeProperties
, Integer limit
, Integer start
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
666 return defaultService
.list(example
, includeProperties
, limit
, start
, orderHints
, propertyPaths
);
671 * @param matchStrategy
672 * @param mergeStrategy
674 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#deduplicate(java.lang.Class, eu.etaxonomy.cdm.strategy.match.IMatchStrategy, eu.etaxonomy.cdm.strategy.merge.IMergeStrategy)
677 public int deduplicate(Class
<?
extends Reference
> clazz
, IMatchStrategy matchStrategy
, IMergeStrategy mergeStrategy
) {
678 return defaultService
.deduplicate(clazz
, matchStrategy
, mergeStrategy
);
689 * @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)
692 public Pager
<Reference
> findTitleCache(Class
<?
extends Reference
> clazz
, String queryString
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, MatchMode matchMode
) {
693 return defaultService
.findTitleCache(clazz
, queryString
, pageSize
, pageNumber
, orderHints
, matchMode
);
697 public DeleteResult
isDeletable(Reference object
,
698 DeleteConfiguratorBase config
) {
699 // TODO Auto-generated method stub
704 public Reference
findWithoutFlush(UUID uuid
) {
705 return defaultService
.findWithoutFlush(uuid
);
709 public <S
extends Reference
> Pager
<FindByIdentifierDTO
<S
>> findByIdentifier(Class
<S
> clazz
, String identifier
, DefinedTerm identifierType
, MatchMode matchmode
, boolean includeEntity
, Integer pageSize
, Integer pageNumber
, List
<String
> propertyPaths
){
710 return defaultService
.findByIdentifier(clazz
, identifier
, identifierType
, matchmode
, includeEntity
, pageSize
, pageNumber
, propertyPaths
);
714 * @see eu.etaxonomy.cdm.api.service.IService#delete(java.util.UUID)
717 public DeleteResult
delete(UUID uuid
) {
718 return defaultService
.delete(uuid
);