cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/RepresentationDaoImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/TermVocabularyDaoImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionDaoImpl.java -text
+cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionElementDaoImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/FeatureDaoImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/FeatureNodeDaoImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/FeatureTreeDaoImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/NomenclaturalStatusDaoHibernateImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TypeDesignationHibernateImpl.java -text
+cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/occurrence/CollectionDaoHibernateImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/occurrence/OccurrenceDaoHibernateImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/reference/ReferenceDaoHibernateImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImpl.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/name/INomenclaturalStatusDao.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/name/ITaxonNameDao.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/name/ITypeDesignationDao.java -text
+cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/occurrence/ICollectionDao.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/occurrence/IOccurrenceDao.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/reference/IReferenceDao.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/taxon/ITaxonDao.java -text
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.TextData;
import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.persistence.dao.common.ICdmEntityDao;
+import eu.etaxonomy.cdm.persistence.dao.common.IAnnotatableDao;
-public interface IDescriptionElementDao extends ICdmEntityDao<DescriptionElementBase> {
+public interface IDescriptionElementDao extends IAnnotatableDao<DescriptionElementBase> {
/**
* This query is designed to search the the descriptions.
* This is complicated somewhat by the 1 ... n relation between
*/
public List<TextData> searchTextData(String queryString, Integer pageSize, Integer pageNumber);
+ /**
+ * Return a count of TextData elements who's content matches the query string
+ *
+ * @param queryString a query string following Lucene Query Parser syntax
+ * @return a count of matching TextData elements
+ */
public int countTextData(String queryString);
+ /**
+ * Returns a List of Media that are associated with a given description element
+ *
+ * @param descriptionElement the description element associated with these media
+ * @param pageSize The maximum number of media returned (can be null for all related media)
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)
+ * @return a List of media instances
+ */
public List<Media> getMedia(DescriptionElementBase descriptionElement, Integer pageSize, Integer pageNumber);
+ /**
+ * Returns a count of Media that are associated with a given description element
+ *
+ * @param descriptionElement the description element associated with these media
+ * @return a count of media instances
+ */
public int countMedia(DescriptionElementBase descriptionElement);
}
--- /dev/null
+package eu.etaxonomy.cdm.persistence.dao.hibernate.description;
+
+import java.util.List;
+
+import org.hibernate.Query;
+import org.springframework.stereotype.Repository;
+
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.TextData;
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.persistence.dao.description.IDescriptionElementDao;
+import eu.etaxonomy.cdm.persistence.dao.hibernate.common.AnnotatableDaoImpl;
+
+@Repository
+public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionElementBase> implements IDescriptionElementDao {
+
+ public int countMedia(DescriptionElementBase descriptionElement) {
+ Query query = getSession().createQuery("select count(media) from DescriptionElementBase descriptionElement join descriptionElement.media media where descriptionElement = :descriptionElement");
+ query.setParameter("descriptionElement", descriptionElement);
+
+ return ((Long)query.uniqueResult()).intValue();
+ }
+
+ public int countTextData(String queryString) {
+ throw new UnsupportedOperationException("Free text searching isn't implemented yet, sorry!");
+ }
+
+ public List<Media> getMedia(DescriptionElementBase descriptionElement, Integer pageSize, Integer pageNumber) {
+ Query query = getSession().createQuery("select media from DescriptionElementBase descriptionElement join descriptionElement.media media where descriptionElement = :descriptionElement");
+ query.setParameter("descriptionElement", descriptionElement);
+
+ if(pageSize != null) {
+ query.setMaxResults(pageSize);
+ if(pageNumber != null) {
+ query.setFirstResult(pageNumber * pageSize);
+ } else {
+ query.setFirstResult(0);
+ }
+ }
+
+ return (List<Media>)query.list();
+ }
+
+ public List<TextData> searchTextData(String queryString, Integer pageSize, Integer pageNumber) {
+ throw new UnsupportedOperationException("Free text searching isn't implemented yet, sorry!");
+ }
+
+}
--- /dev/null
+package eu.etaxonomy.cdm.persistence.dao.hibernate.occurrence;
+
+import java.util.List;
+
+import org.hibernate.Criteria;
+import org.hibernate.criterion.Restrictions;
+import org.springframework.stereotype.Repository;
+
+import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase;
+import eu.etaxonomy.cdm.persistence.dao.occurrence.ICollectionDao;
+
+@Repository
+public class CollectionDaoHibernateImpl extends IdentifiableDaoBase<Collection> implements
+ ICollectionDao {
+
+ public CollectionDaoHibernateImpl() {
+ super(Collection.class);
+ }
+
+ public List<Collection> getCollectionByCode(String code) {
+ Criteria crit = getSession().createCriteria(Collection.class);
+
+ crit.add(Restrictions.eq("code", code));
+ List<Collection> results = crit.list();
+ return results;
+ }
+}
import java.util.List;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.Criteria;\r
-import org.hibernate.criterion.Restrictions;\r
+import org.hibernate.Query;\r
import org.springframework.stereotype.Repository;\r
\r
-import eu.etaxonomy.cdm.model.occurrence.Collection;\r
+import eu.etaxonomy.cdm.model.media.Media;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
+import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase;\r
import eu.etaxonomy.cdm.persistence.dao.hibernate.taxon.TaxonDaoHibernateImpl;\r
public OccurrenceDaoHibernateImpl() {\r
super(SpecimenOrObservationBase.class);\r
}\r
- \r
- public List<Collection> getCollectionByCode(String code) {\r
- Criteria crit = getSession().createCriteria(Collection.class);\r
\r
- crit.add(Restrictions.eq("code", code));\r
- List<Collection> results = crit.list();\r
- return results;\r
+ public int countDerivationEvents(SpecimenOrObservationBase occurence) {\r
+ Query query = getSession().createQuery("select count(distinct derivationEvent) from DerivationEvent derivationEvent join derivationEvent.originals occurence where occurence = :occurence");\r
+ query.setParameter("occurence", occurence);\r
+ \r
+ return ((Long)query.uniqueResult()).intValue();\r
}\r
+\r
+ public int countDeterminations(SpecimenOrObservationBase occurence) {\r
+ Query query = getSession().createQuery("select count(determination) from DeterminationEvent determination where determination.identifiedUnit = :occurence");\r
+ \r
+ return ((Long)query.uniqueResult()).intValue();\r
+ }\r
+\r
+ public int countMedia(SpecimenOrObservationBase occurence) {\r
+ Query query = getSession().createQuery("select count(media) from SpecimenOrObservationBase occurence join occurence.media media where occurence = :occurence");\r
+ query.setParameter("occurence", occurence);\r
+ \r
+ return ((Long)query.uniqueResult()).intValue();\r
+ }\r
+\r
+ public List<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize,Integer pageNumber) {\r
+ Query query = getSession().createQuery("select distinct derivationEvent from DerivationEvent derivationEvent join derivationEvent.originals occurence where occurence = :occurence");\r
+ query.setParameter("occurence", occurence);\r
+ \r
+ if(pageSize != null) {\r
+ query.setMaxResults(pageSize);\r
+ if(pageNumber != null) {\r
+ query.setFirstResult(pageNumber * pageSize);\r
+ } else {\r
+ query.setFirstResult(0);\r
+ }\r
+ }\r
+ \r
+ return (List<DerivationEvent>)query.list();\r
+ }\r
+\r
+ public List<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber) {\r
+ Query query = getSession().createQuery("select determination from DeterminationEvent determination where determination.identifiedUnit = :occurence");\r
+ query.setParameter("occurence", occurence);\r
+ \r
+ if(pageSize != null) {\r
+ query.setMaxResults(pageSize);\r
+ if(pageNumber != null) {\r
+ query.setFirstResult(pageNumber * pageSize);\r
+ } else {\r
+ query.setFirstResult(0);\r
+ }\r
+ }\r
+ \r
+ return (List<DeterminationEvent>)query.list();\r
+ }\r
+\r
+ public List<Media> getMedia(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber) {\r
+ Query query = getSession().createQuery("select media from SpecimenOrObservationBase occurence join occurence.media media where occurence = :occurence");\r
+ query.setParameter("occurence", occurence);\r
+ \r
+ if(pageSize != null) {\r
+ query.setMaxResults(pageSize);\r
+ if(pageNumber != null) {\r
+ query.setFirstResult(pageNumber * pageSize);\r
+ } else {\r
+ query.setFirstResult(0);\r
+ }\r
+ }\r
+ \r
+ return (List<Media>)query.list();\r
+ } \r
}\r
--- /dev/null
+package eu.etaxonomy.cdm.persistence.dao.occurrence;
+
+import java.util.List;
+
+import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.persistence.dao.common.IIdentifiableDao;
+
+public interface ICollectionDao extends IIdentifiableDao<Collection> {
+
+ /**
+ * Returns a list of Collection instances matching the code supplied
+ *
+ * @param code The code
+ * @return a List of Collection instances
+ */
+ public List<Collection> getCollectionByCode(String code);
+
+}
\r
import java.util.List;\r
\r
-import eu.etaxonomy.cdm.model.occurrence.Collection;\r
+import eu.etaxonomy.cdm.model.media.Media;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
+import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.persistence.dao.common.IIdentifiableDao;\r
\r
*/\r
public interface IOccurrenceDao extends IIdentifiableDao<SpecimenOrObservationBase> {\r
\r
- public List<Collection> getCollectionByCode(String code);\r
+ /**\r
+ * Returns a count of Media that are associated with a given occurence\r
+ * \r
+ * @param occurence the occurence associated with these media\r
+ * @return a count of media instances\r
+ */\r
+ public int countMedia(SpecimenOrObservationBase occurence);\r
+ \r
+ /**\r
+ * Returns a List of Media that are associated with a given occurence\r
+ * \r
+ * @param occurence the occurence associated with these media\r
+ * @param pageSize The maximum number of media returned (can be null for all related media)\r
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)\r
+ * @return a List of media instances\r
+ */\r
+ public List<Media> getMedia(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber);\r
+ \r
+ /**\r
+ * Returns a count of determinations that have been made for a given occurence\r
+ * \r
+ * @param occurence the occurence associated with these determinations\r
+ * @return a count of determination events\r
+ */\r
+ public int countDeterminations(SpecimenOrObservationBase occurence);\r
+ \r
+ /**\r
+ * Returns a List of determinations that have been made for a given occurence\r
+ * \r
+ * @param occurence the occurence associated with these determinations\r
+ * @param pageSize The maximum number of determinations returned (can be null for all related determinations)\r
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)\r
+ * @return a List of determination instances\r
+ */\r
+ public List<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber);\r
+\r
+ /**\r
+ * Returns a count of derivation events that have involved creating new DerivedUnits from this occurence\r
+ * \r
+ * @param occurence the occurence that was a source of these derivation events\r
+ * @return a count of derivation events\r
+ */\r
+ public int countDerivationEvents(SpecimenOrObservationBase occurence);\r
+ \r
+ /**\r
+ * Returns a list of derivation events that have involved creating new DerivedUnits from this occurence\r
+ * \r
+ * @param occurence the occurence that was a source of these derivation events\r
+ * @param pageSize The maximum number of derivation events returned (can be null for all related derivation events)\r
+ * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based)\r
+ * @return a List of derivation events\r
+ */\r
+ public List<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize, Integer pageNumber);\r
}\r