Revision 706e7541
Added by Andreas Müller almost 13 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/common/IDefinedTermDao.java | ||
---|---|---|
49 | 49 |
|
50 | 50 |
public int countDefinedTermByRepresentationText(String text, Class<? extends DefinedTermBase> clazz); |
51 | 51 |
|
52 |
public <TYPE extends DefinedTermBase> List<TYPE> getDefinedTermByRepresentationAbbrev(String text, Class<TYPE> clazz, Integer pageSize,Integer pageNumber); |
|
53 |
|
|
54 |
public int countDefinedTermByRepresentationAbbrev(String text, Class<? extends DefinedTermBase> clazz); |
|
55 |
|
|
56 |
|
|
52 | 57 |
/** |
53 | 58 |
* Returns a List of Media that represent a given DefinedTerm instance |
54 | 59 |
* |
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/DefinedTermDaoImpl.java | ||
---|---|---|
210 | 210 |
return (List<T>) criteria.list(); |
211 | 211 |
} |
212 | 212 |
|
213 |
public int countDefinedTermByRepresentationText(String text, Class<? extends DefinedTermBase> clazz) { |
|
213 |
public int countDefinedTermByRepresentationText(String text, Class<? extends DefinedTermBase> clazz) {
|
|
214 | 214 |
checkNotInPriorView("DefinedTermDaoImpl.countDefinedTermByRepresentationText(String text, Class<? extends DefinedTermBase> clazz)"); |
215 | 215 |
Criteria criteria = null; |
216 | 216 |
if(clazz == null) { |
... | ... | |
227 | 227 |
return (Integer)criteria.uniqueResult(); |
228 | 228 |
} |
229 | 229 |
|
230 |
@Override |
|
231 |
public <T extends DefinedTermBase> List<T> getDefinedTermByRepresentationAbbrev(String text, Class<T> clazz, Integer pageSize,Integer pageNumber) { |
|
232 |
checkNotInPriorView("DefinedTermDaoImpl.getDefinedTermByRepresentationAbbrev(String abbrev, Class<T> clazz, Integer pageSize,Integer pageNumber)"); |
|
233 |
|
|
234 |
Criteria criteria = null; |
|
235 |
if(clazz == null) { |
|
236 |
criteria = getSession().createCriteria(type); |
|
237 |
} else { |
|
238 |
criteria = getSession().createCriteria(clazz); |
|
239 |
} |
|
240 |
|
|
241 |
criteria.createAlias("representations", "r").add(Restrictions.like("r.abbreviatedLabel", text)); |
|
242 |
|
|
243 |
if(pageSize != null) { |
|
244 |
criteria.setMaxResults(pageSize); |
|
245 |
if(pageNumber != null) { |
|
246 |
criteria.setFirstResult(pageNumber * pageSize); |
|
247 |
} |
|
248 |
} |
|
249 |
|
|
250 |
return (List<T>) criteria.list(); |
|
251 |
} |
|
252 |
|
|
253 |
@Override |
|
254 |
public int countDefinedTermByRepresentationAbbrev(String text, Class<? extends DefinedTermBase> clazz) { |
|
255 |
checkNotInPriorView("DefinedTermDaoImpl.countDefinedTermByRepresentationAbbrev(String abbrev, Class<? extends DefinedTermBase> clazz)"); |
|
256 |
Criteria criteria = null; |
|
257 |
if(clazz == null) { |
|
258 |
criteria = getSession().createCriteria(type); |
|
259 |
} else { |
|
260 |
criteria = getSession().createCriteria(clazz); |
|
261 |
} |
|
262 |
|
|
263 |
criteria.createAlias("representations", "r").add(Restrictions.like("r.abbreviatedLabel", text)); |
|
264 |
|
|
265 |
|
|
266 |
criteria.setProjection(Projections.rowCount()); |
|
267 |
|
|
268 |
return (Integer)criteria.uniqueResult(); |
|
269 |
} |
|
270 |
|
|
271 |
|
|
230 | 272 |
/* (non-Javadoc) |
231 | 273 |
* @see eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao#getLangaugeByIso(java.lang.String) |
232 | 274 |
*/ |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITermService.java | ||
---|---|---|
99 | 99 |
public <T extends DefinedTermBase> Pager<T> getIncludes(Set<T> definedTerms, Integer pageSize, Integer pageNumber, List<String> propertyPaths); |
100 | 100 |
|
101 | 101 |
/** |
102 |
* Return a paged list of terms which have representations that match the supplied string |
|
102 |
* Return a paged list of terms which have representations that match the supplied string in the text (description)
|
|
103 | 103 |
* |
104 | 104 |
* @param label a string to match (exactly) |
105 | 105 |
* @param pageSize The maximum number of terms returned (can be null for all terms) |
... | ... | |
108 | 108 |
*/ |
109 | 109 |
public <T extends DefinedTermBase> Pager<T> findByRepresentationText(String label, Class<T> clazz, Integer pageSize, Integer pageNumber); |
110 | 110 |
|
111 |
/** |
|
112 |
* Return a paged list of terms which have representations that match the supplied string in the abbreviated label |
|
113 |
* |
|
114 |
* @param label a string to match (exactly) |
|
115 |
* @param pageSize The maximum number of terms returned (can be null for all terms) |
|
116 |
* @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based) |
|
117 |
* @return a Pager of DefinedTerms |
|
118 |
*/ |
|
119 |
public <T extends DefinedTermBase> Pager<T> findByRepresentationAbbreviation(String abbrev, Class<T> clazz, Integer pageSize, Integer pageNumber); |
|
120 |
|
|
121 |
|
|
111 | 122 |
/** |
112 | 123 |
* |
113 | 124 |
* @param <TERM> |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TermServiceImpl.java | ||
---|---|---|
168 | 168 |
|
169 | 169 |
return new DefaultPagerImpl<T>(pageNumber, numberOfResults, pageSize, results); |
170 | 170 |
} |
171 |
|
|
172 |
public <T extends DefinedTermBase> Pager<T> findByRepresentationAbbreviation(String abbrev, Class<T> clazz, Integer pageSize, Integer pageNumber) { |
|
173 |
Integer numberOfResults = dao.countDefinedTermByRepresentationAbbrev(abbrev,clazz); |
|
174 |
|
|
175 |
List<T> results = new ArrayList<T>(); |
|
176 |
if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize) |
|
177 |
results = dao.getDefinedTermByRepresentationAbbrev(abbrev, clazz, pageSize, pageNumber); |
|
178 |
} |
|
179 |
|
|
180 |
return new DefaultPagerImpl<T>(pageNumber, numberOfResults, pageSize, results); |
|
181 |
} |
|
171 | 182 |
|
172 | 183 |
public List<LanguageString> getAllLanguageStrings(int limit, int start) { |
173 | 184 |
return languageStringDao.list(limit, start); |
Also available in: Unified diff
getTermByRepresentationAbbrev