2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.persistence
.dao
.reference
;
11 import java
.util
.List
;
13 import java
.util
.UUID
;
15 import org
.hibernate
.criterion
.Criterion
;
17 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
18 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceType
;
19 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
20 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTermBase
;
21 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.IIdentifiableDao
;
22 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.ITitledDao
;
23 import eu
.etaxonomy
.cdm
.persistence
.dto
.UuidAndTitleCache
;
24 import eu
.etaxonomy
.cdm
.persistence
.query
.MatchMode
;
25 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
30 public interface IReferenceDao
extends IIdentifiableDao
<Reference
>, ITitledDao
<Reference
> {
32 public List
<UuidAndTitleCache
<Reference
>> getUuidAndTitle();
35 * TODO candidate for harmonization: rename to listAllReferencesForPublishing
36 * @return all references marked with publish-flag
38 public List
<Reference
> getAllReferencesForPublishing();
41 * TODO candidate for harmonization: rename to listAllNotNomenclaturalReferencesForPublishing
42 * @return all references not used as nomenclatural reference with publish flag
44 public List
<Reference
> getAllNotNomenclaturalReferencesForPublishing();
47 * TODO candidate for harmonization: rename to listNomenclaturalReferences
50 public List
<Reference
> getAllNomenclaturalReferences();
53 * recursively finds all references where the <code>referenceBase</code> given as parameter
54 * is the {@link Reference.getInReference inReference}.
58 public List
<Reference
> getSubordinateReferences(Reference reference
);
61 * searches for taxa using the following relations:
63 * <li>taxon.name.nomenclaturalSource.citation</li>
64 * <li>taxon.descriptions.descriptionElement.sources.citation</li>
65 * <li>taxon.descriptions.descriptionSources</li>
66 * <li>taxon.name.descriptions.descriptionElement.sources</li>
67 * <li>taxon.name.descriptions.descriptionSources</li>
71 * @param orderHints TODO
72 * @param propertyPaths TODO
75 public List
<TaxonBase
> listCoveredTaxa(Reference reference
, boolean includeSubordinateReferences
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
);
83 List
<UuidAndTitleCache
<Reference
>> getUuidAndAbbrevTitleCache(Integer limit
, String pattern
, ReferenceType refType
);
91 List
<UuidAndTitleCache
<Reference
>> getUuidAndTitleCache(Integer limit
, String pattern
, ReferenceType refType
);
95 * @param identifierType
100 List
<Object
[]> findByIdentifierAbbrev(String identifier
, DefinedTermBase identifierType
, MatchMode matchmode
,
109 List
<UuidAndTitleCache
<Reference
>> getUuidAndAbbrevTitleCacheForAuthor(Integer limit
, String pattern
,
110 ReferenceType refType
);
116 List
<UuidAndTitleCache
<Reference
>> getUuidAndTitle(Set
<UUID
> uuids
);
123 List
<UuidAndTitleCache
<Reference
>> getUuidAndTitle(Set
<UUID
> uuids
, ReferenceType refType
);
133 * @param propertyPaths
136 List
<Reference
> findByTitleAndAbbrevTitle(Class clazz
, String queryString
, MatchMode matchmode
,
137 List
<Criterion
> criterion
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
,
138 List
<String
> propertyPaths
);
140 List
<UuidAndTitleCache
<Reference
>> getUuidAndAbbrevTitleCacheForAuthorID(Integer limit
, Integer authorID
,
141 ReferenceType refType
);
148 List
<UuidAndTitleCache
<Reference
>> getUuidAndAbbrevTitle(Set
<UUID
> uuids
, ReferenceType refType
);
154 List
<UuidAndTitleCache
<Reference
>> getUuidAndAbbrevTitle(Set
<UUID
> uuids
);