return count(type);\r
}\r
\r
- public <TYPE extends T> int count(Class<TYPE> type) {\r
+ public <TYPE extends T> int count(Class<TYPE> clazz) {\r
Session session = getSession();\r
- Criteria crit = session.createCriteria(type);\r
+ Criteria crit = session.createCriteria(clazz);\r
crit.setProjection(Projections.projectionList().add(Projections.rowCount()));\r
Integer nbrRows = (Integer) crit.uniqueResult();\r
return nbrRows.intValue();\r
OrderHint orderHint = orderHints.get(i);\r
switch(orderHint.getSortOrder()) {\r
case ASCENDING:\r
- sortFields[i] = new SortField(orderHint.getPropertyName() + "_forSort", false);\r
+ sortFields[i] = new SortField(orderHint.getPropertyName() + "_forSort", true);\r
case DESCENDING:\r
- sortFields[i] = new SortField(orderHint.getPropertyName() + "_forSort",true);\r
+ sortFields[i] = new SortField(orderHint.getPropertyName() + "_forSort",false);\r
}\r
}\r
sort.setSort(sortFields);\r
return (Integer)criteria.uniqueResult();\r
}\r
\r
- public int countTaxaByName(Boolean accepted, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank) {\r
+ public int countTaxaByName(Class<? extends TaxonBase> clazz, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank) {\r
checkNotInPriorView("TaxonDaoHibernateImpl.countTaxaByName(Boolean accepted, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank)");\r
Criteria criteria = null;\r
\r
- if(accepted == null) {\r
+ if(clazz == null) {\r
criteria = getSession().createCriteria(TaxonBase.class);\r
} else {\r
- if(accepted) {\r
- criteria = getSession().createCriteria(Taxon.class);\r
- } else {\r
- criteria = getSession().createCriteria(Synonym.class);\r
- }\r
+ criteria = getSession().createCriteria(clazz); \r
}\r
\r
criteria.setFetchMode( "name", FetchMode.JOIN );\r
return (Integer)criteria.uniqueResult();\r
}\r
\r
- public List<TaxonBase> findTaxaByName(Boolean accepted, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {\r
+ public List<TaxonBase> findTaxaByName(Class<? extends TaxonBase> clazz, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank, Integer pageSize, Integer pageNumber) {\r
checkNotInPriorView("TaxonDaoHibernateImpl.findTaxaByName(Boolean accepted, String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank, Integer pageSize, Integer pageNumber)");\r
Criteria criteria = null;\r
\r
- if(accepted == null) {\r
+ if(clazz == null) {\r
criteria = getSession().createCriteria(TaxonBase.class);\r
} else {\r
- if(accepted) {\r
- criteria = getSession().createCriteria(Taxon.class);\r
- } else {\r
- criteria = getSession().createCriteria(Synonym.class);\r
- }\r
+ criteria = getSession().createCriteria(clazz);\r
}\r
\r
criteria.setFetchMode( "name", FetchMode.JOIN );\r
public List<SynonymRelationship> getSynonyms(Taxon taxon, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);\r
\r
/**\r
- * Returns a count of TaxonBase instances (or Taxon instances, if accepted == true, or Synonym instance, if accepted == false) where the\r
+ * Returns a count of TaxonBase instances where the\r
* taxon.name properties match the parameters passed.\r
* \r
- * @param accepted\r
+ * @param clazz \r
* @param uninomial\r
* @param infragenericEpithet\r
* @param specificEpithet\r
* @param rank\r
* @return a count of TaxonBase instances\r
*/\r
- public int countTaxaByName(Boolean accepted, String uninomial, String infragenericEpithet,String specificEpithet, String infraspecificEpithet, Rank rank);\r
+ public int countTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet,String specificEpithet, String infraspecificEpithet, Rank rank);\r
\r
/**\r
- * Returns a list of TaxonBase instances (or Taxon instances, if accepted == true, or Synonym instance, if accepted == false) where the\r
+ * Returns a list of TaxonBase instances where the\r
* taxon.name properties match the parameters passed. In order to search for any string value, pass '*', passing the string value of \r
* <i>null</i> will search for those taxa with a value of null in that field\r
* \r
- * @param accepted Whether the taxon is accepted (true) a synonym (false), or either (null)\r
+ * @param clazz optionally filter by class (can be null to return all taxa)\r
* @param uninomial \r
* @param infragenericEpithet\r
* @param specificEpithet\r
* @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)\r
* @return a list of TaxonBase instances\r
*/\r
- public List<TaxonBase> findTaxaByName(Boolean accepted, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber);\r
+ public List<TaxonBase> findTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber);\r
\r
\r
}\r
@Test\r
@DataSet\r
public void testGetTaxonMatchingUninomial() {\r
- List<TaxonBase> result = taxonDao.findTaxaByName(true, "Smerinthus", "*", "*", "*",null,null,null);\r
+ List<TaxonBase> result = taxonDao.findTaxaByName(Taxon.class, "Smerinthus", "*", "*", "*",null,null,null);\r
\r
assertNotNull("findTaxaByName should return a List", result);\r
assertEquals("findTaxaByName should return two Taxa",2,result.size());\r
@Test\r
@DataSet\r
public void testGetTaxonMatchingSpeciesBinomial() {\r
- List<TaxonBase> result = taxonDao.findTaxaByName(true,"Smerinthus", null, "kindermannii", null,null,null,null);\r
+ List<TaxonBase> result = taxonDao.findTaxaByName(Taxon.class,"Smerinthus", null, "kindermannii", null,null,null,null);\r
\r
assertNotNull("findTaxaByName should return a List", result);\r
assertEquals("findTaxaByName should return one Taxon",1,result.size());\r
@Test\r
@DataSet\r
public void testGetTaxonMatchingTrinomial() {\r
- List<TaxonBase> result = taxonDao.findTaxaByName(true,"Cryptocoryne", null,"purpurea","borneoensis",null,null,null);\r
+ List<TaxonBase> result = taxonDao.findTaxaByName(Taxon.class,"Cryptocoryne", null,"purpurea","borneoensis",null,null,null);\r
\r
assertNotNull("findTaxaByName should return a List", result);\r
assertEquals("findTaxaByName should return one Taxon",1,result.size());\r
@Test\r
@DataSet\r
public void testNegativeMatch() {\r
- List<TaxonBase> result = taxonDao.findTaxaByName(true,"Acherontia", null,"atropos","dehli",null,null,null);\r
+ List<TaxonBase> result = taxonDao.findTaxaByName(Taxon.class,"Acherontia", null,"atropos","dehli",null,null,null);\r
\r
assertNotNull("findTaxaByName should return a List", result);\r
assertTrue("findTaxaByName should return an empty List",result.isEmpty());\r