Revision ebedad1f
Added by Anahit Babadshanjan over 15 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImpl.java | ||
---|---|---|
28 | 28 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase; |
29 | 29 |
import eu.etaxonomy.cdm.model.name.TypeDesignationBase; |
30 | 30 |
import eu.etaxonomy.cdm.model.name.TypeDesignationStatus; |
31 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
|
32 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
|
31 | 33 |
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase; |
32 | 34 |
import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao; |
33 | 35 |
|
... | ... | |
58 | 60 |
query.setParameter("name",name); |
59 | 61 |
return ((Long)query.uniqueResult()).intValue(); |
60 | 62 |
} |
63 |
|
|
64 |
public int countNames(String queryString) { |
|
65 |
|
|
66 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class); |
|
67 |
|
|
68 |
if (queryString != null) { |
|
69 |
criteria.add(Restrictions.ilike("nameCache", queryString)); |
|
70 |
} |
|
71 |
criteria.setProjection(Projections.projectionList().add(Projections.rowCount())); |
|
72 |
|
|
73 |
return (Integer)criteria.uniqueResult(); |
|
74 |
} |
|
61 | 75 |
|
62 | 76 |
public int countNames(String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank) { |
63 | 77 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class); |
... | ... | |
182 | 196 |
return (List<TypeDesignationBase>)query.list(); |
183 | 197 |
} |
184 | 198 |
|
199 |
|
|
200 |
public List<TaxonNameBase<?,?>> searchNames(String queryString, Integer pageSize, Integer pageNumber) { |
|
201 |
|
|
202 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class); |
|
203 |
|
|
204 |
if (queryString != null) { |
|
205 |
criteria.add(Restrictions.ilike("nameCache", queryString)); |
|
206 |
} |
|
207 |
if(pageSize != null) { |
|
208 |
criteria.setMaxResults(pageSize); |
|
209 |
if(pageNumber != null) { |
|
210 |
criteria.setFirstResult(pageNumber * pageSize); |
|
211 |
} else { |
|
212 |
criteria.setFirstResult(0); |
|
213 |
} |
|
214 |
} |
|
215 |
List<TaxonNameBase<?,?>> results = criteria.list(); |
|
216 |
return results; |
|
217 |
} |
|
218 |
|
|
219 |
|
|
185 | 220 |
public List<TaxonNameBase> searchNames(String genusOrUninomial,String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank, Integer pageSize,Integer pageNumber) { |
186 | 221 |
Criteria criteria = getSession().createCriteria(TaxonNameBase.class); |
187 | 222 |
|
... | ... | |
222 | 257 |
criteria.setFirstResult(0); |
223 | 258 |
} |
224 | 259 |
} |
225 |
|
|
226 |
|
|
260 |
|
|
227 | 261 |
return (List<TaxonNameBase>)criteria.list(); |
228 | 262 |
} |
229 | 263 |
|
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImpl.java | ||
---|---|---|
57 | 57 |
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao; |
58 | 58 |
import eu.etaxonomy.cdm.persistence.fetch.CdmFetch; |
59 | 59 |
|
60 |
/** |
|
61 |
* @author a.mueller |
|
62 |
* |
|
63 |
*/ |
|
64 |
/** |
|
65 |
* @author a.mueller |
|
66 |
* @created 24.11.2008 |
|
67 |
* @version 1.0 |
|
68 |
*/ |
|
69 | 60 |
/** |
70 | 61 |
* @author a.mueller |
71 | 62 |
* @created 24.11.2008 |
... | ... | |
150 | 141 |
return results; |
151 | 142 |
} |
152 | 143 |
|
153 |
public List<TaxonBase> getTaxaByName(String name, ReferenceBase sec) { |
|
154 |
Criteria crit = getSession().createCriteria(Taxon.class); |
|
144 |
public List<TaxonBase> getTaxaByName(String queryString, ReferenceBase sec) { |
|
145 |
|
|
146 |
return getTaxaByName(queryString, true, sec); |
|
147 |
} |
|
148 |
|
|
149 |
public List<TaxonBase> getTaxaByName(String queryString, Boolean accepted, ReferenceBase sec) { |
|
150 |
|
|
151 |
Criteria criteria = null; |
|
152 |
if (accepted == true) { |
|
153 |
criteria = getSession().createCriteria(Taxon.class); |
|
154 |
} else { |
|
155 |
criteria = getSession().createCriteria(Synonym.class); |
|
156 |
} |
|
157 |
|
|
158 |
criteria.setFetchMode( "name", FetchMode.JOIN ); |
|
159 |
criteria.createAlias("name", "name"); |
|
160 |
|
|
155 | 161 |
if (sec != null){ |
156 | 162 |
if(sec.getId() == 0){ |
157 | 163 |
getSession().save(sec); |
158 | 164 |
} |
159 |
crit.add(Restrictions.eq("sec", sec ) ); |
|
165 |
criteria.add(Restrictions.eq("sec", sec ) );
|
|
160 | 166 |
} |
161 |
crit.createCriteria("name").add(Restrictions.like("nameCache", name)); |
|
162 |
List<TaxonBase> results = crit.list(); |
|
167 |
if (queryString != null) { |
|
168 |
criteria.add(Restrictions.ilike("name.nameCache", queryString)); |
|
169 |
} |
|
170 |
List<TaxonBase> results = criteria.list(); |
|
163 | 171 |
return results; |
164 | 172 |
} |
165 | 173 |
|
... | ... | |
332 | 340 |
throw new QueryParseException(e, queryString); |
333 | 341 |
} |
334 | 342 |
} |
343 |
|
|
344 |
public int countTaxaByName(String queryString, Boolean accepted, ReferenceBase sec) { |
|
345 |
|
|
346 |
Criteria criteria = null; |
|
347 |
|
|
348 |
if (accepted == true) { |
|
349 |
criteria = getSession().createCriteria(Taxon.class); |
|
350 |
} else { |
|
351 |
criteria = getSession().createCriteria(Synonym.class); |
|
352 |
} |
|
353 |
|
|
354 |
criteria.setFetchMode( "name", FetchMode.JOIN ); |
|
355 |
criteria.createAlias("name", "name"); |
|
356 |
|
|
357 |
if (sec != null){ |
|
358 |
if(sec.getId() == 0){ |
|
359 |
getSession().save(sec); |
|
360 |
} |
|
361 |
criteria.add(Restrictions.eq("sec", sec ) ); |
|
362 |
} |
|
363 |
if (queryString != null) { |
|
364 |
criteria.add(Restrictions.ilike("name.nameCache", queryString)); |
|
365 |
} |
|
366 |
criteria.setProjection(Projections.projectionList().add(Projections.rowCount())); |
|
367 |
|
|
368 |
return (Integer)criteria.uniqueResult(); |
|
369 |
} |
|
335 | 370 |
|
336 |
public int countTaxaByName(Boolean accepted, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank) {
|
|
371 |
public int countTaxaByName(Boolean accepted, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank) {
|
|
337 | 372 |
Criteria criteria = null; |
338 | 373 |
|
339 | 374 |
if(accepted == null) { |
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/name/ITaxonNameDao.java | ||
---|---|---|
119 | 119 |
*/ |
120 | 120 |
public int countNames(String uninomial, String infraGenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank); |
121 | 121 |
|
122 |
/** |
|
123 |
* Returns a List of TaxonNameBase instances which nameCache matches the query string |
|
124 |
* |
|
125 |
* @param queryString |
|
126 |
* @param pageSize The maximum number of names returned (can be null for all names) |
|
127 |
* @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based) |
|
128 |
* @return a List of TaxonNameBase instances |
|
129 |
*/ |
|
130 |
public List<TaxonNameBase<?,?>> searchNames(String queryString, Integer pageSize, Integer pageNumber); |
|
131 |
|
|
132 |
/** |
|
133 |
* Returns a count of TaxonNameBase instances which nameCache matches the String queryString |
|
134 |
* |
|
135 |
* @param queryString |
|
136 |
* @return a count of TaxonNameBase instances |
|
137 |
*/ |
|
138 |
public int countNames(String queryString); |
|
122 | 139 |
} |
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/taxon/ITaxonDao.java | ||
---|---|---|
33 | 33 |
*/ |
34 | 34 |
public interface ITaxonDao extends IIdentifiableDao<TaxonBase>, ITitledDao<TaxonBase> { |
35 | 35 |
|
36 |
/** |
|
37 |
* Returns a count of TaxonBase instances (or Taxon instances, if accepted == true, or Synonym instance, if accepted == false) |
|
38 |
* where the taxonBase.name.nameCache property matches the String queryString |
|
39 |
* |
|
40 |
* @param queryString |
|
41 |
* @param accepted |
|
42 |
* @param sec |
|
43 |
* @return a count of the matching taxa |
|
44 |
*/ |
|
45 |
public int countTaxaByName(String queryString, Boolean accepted, ReferenceBase sec); |
|
46 |
|
|
47 |
/** |
|
48 |
* Returns a list of TaxonBase instances where the taxon.titleCache property matches the name parameter, |
|
49 |
* and taxon.sec matches the sec parameter. |
|
50 |
* @param name |
|
51 |
* @param sec |
|
52 |
* @return |
|
53 |
*/ |
|
36 | 54 |
public List<TaxonBase> getTaxaByName(String name, ReferenceBase sec); |
37 | 55 |
|
56 |
/** |
|
57 |
* Returns a list of TaxonBase instances (or Taxon instances, if accepted == true, or Synonym instance, if accepted == false) |
|
58 |
* where the taxonBase.name.nameCache property matches the String queryString, and taxon.sec matches the sec parameter. |
|
59 |
* @param name |
|
60 |
* @param sec |
|
61 |
* @return |
|
62 |
*/ |
|
63 |
public List<TaxonBase> getTaxaByName(String queryString, Boolean accepted, ReferenceBase sec); |
|
64 |
|
|
38 | 65 |
/** |
39 | 66 |
* Computes all Taxon instances that do not have a taxonomic parent and has at least one child. |
40 | 67 |
* @return The List<Taxon> of root taxa. |
Also available in: Unified diff
Name search functionality for taxonomic editor