1 package fr.ifremer.dali.dao.referential.taxon;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import com.google.common.collect.Multimap;
27 import fr.ifremer.dali.dto.referential.TaxonDTO;
28 import org.springframework.cache.annotation.Cacheable;
29
30 import javax.annotation.Nonnull;
31 import java.time.LocalDate;
32 import java.util.List;
33 import java.util.Map;
34
35
36
37
38
39 public interface DaliTaxonNameDao {
40
41 String TAXON_NAME_BY_ID_CACHE = "taxon_name_by_id";
42 String TAXON_NAMES_BY_IDS_CACHE = "taxon_names_by_ids";
43 String TAXON_NAME_BY_REFERENCE_ID_CACHE = "taxon_name_by_reference_id";
44 String ALL_TAXON_NAMES_CACHE = "all_taxon_names";
45 String TAXON_NAME_BY_TAXON_GROUP_ID_CACHE = "taxon_name_by_taxon_group_id";
46 String COMPOSITE_TAXON_NAMES_BY_TAXON_NAME_ID_CACHE = "composite_taxon_names_by_taxon_name_id";
47 String TAX_REF_BY_TAXON_NAME_ID_CACHE = "tax_ref_by_taxon_name_id";
48 String WORMS_BY_TAXON_NAME_ID_CACHE = "worms_by_taxon_name_id";
49
50
51
52
53
54
55 @Cacheable(value = ALL_TAXON_NAMES_CACHE)
56 List<TaxonDTO> getAllTaxonNames();
57
58
59
60
61
62
63
64 @Cacheable(value = TAXON_NAME_BY_ID_CACHE)
65 TaxonDTO getTaxonNameById(int taxonId);
66
67
68
69
70
71
72
73 @Cacheable(value = TAXON_NAMES_BY_IDS_CACHE)
74 List<TaxonDTO> getTaxonNamesByIds(List<Integer> taxonIds);
75
76
77
78
79
80
81
82 @Cacheable(value = TAXON_NAME_BY_REFERENCE_ID_CACHE)
83 TaxonDTO getTaxonNameByReferenceId(int referenceTaxonId);
84
85
86
87
88
89
90 @Cacheable(value = TAXON_NAME_BY_TAXON_GROUP_ID_CACHE)
91 Multimap<Integer, TaxonDTO> getAllTaxonNamesMapByTaxonGroupId(@Nonnull LocalDate date);
92
93
94
95
96
97
98
99
100
101 List<TaxonDTO> findTaxonNamesByCriteria(String levelCode, String name, boolean isStrictName);
102
103
104
105
106
107
108
109
110
111 List<TaxonDTO> findFullTaxonNamesByCriteria(String levelCode, String name, boolean isStrictName);
112
113
114
115
116
117
118 void fillTaxonsProperties(List<TaxonDTO> taxons);
119
120
121
122
123
124
125 void fillParentAndReferent(TaxonDTO taxon);
126
127
128
129
130
131
132 void fillReferents(List<TaxonDTO> taxons);
133
134
135
136
137
138
139
140 @Cacheable(value = COMPOSITE_TAXON_NAMES_BY_TAXON_NAME_ID_CACHE)
141 List<TaxonDTO> getCompositeTaxonNames(Integer taxonNameId);
142
143
144
145
146
147
148 @Cacheable(value = TAX_REF_BY_TAXON_NAME_ID_CACHE)
149 Map<Integer, String> getTaxRefByTaxonNameId();
150
151
152
153
154
155
156 @Cacheable(value = WORMS_BY_TAXON_NAME_ID_CACHE)
157 Map<Integer, String> getWormsByTaxonNameId();
158 }