From: <rv...@us...> - 2010-06-02 13:25:35
|
Revision: 705 http://treebase.svn.sourceforge.net/treebase/?rev=705&view=rev Author: rvos Date: 2010-06-02 13:25:28 +0000 (Wed, 02 Jun 2010) Log Message: ----------- Added implementation of findByJournal(String pJournal, boolean pExactMatch), so that we can do exact matching against journal names - and then deliver them as RSS, so that journals can have feeds with treebase publications. Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2010-06-02 12:42:58 UTC (rev 704) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2010-06-02 13:25:28 UTC (rev 705) @@ -22,6 +22,7 @@ import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.criterion.Expression; +import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; /** @@ -379,5 +380,24 @@ return returnVal; } + /* + * (non-Javadoc) + * @see org.cipres.treebase.domain.study.StudyHome#findByJournal(java.lang.String, boolean) + */ + public Collection<Study> findByJournal(String pJournal, boolean pExactMatch) { + if ( pExactMatch == false ) { + return findByJournal(pJournal); + } + if (LOGGER.isInfoEnabled()) { + LOGGER.info("Going to do an exact journal name match for "+pJournal); + } + Collection<Study> studies = new ArrayList<Study>(); + Criteria studyCrit = getSession().createCriteria(Study.class).createAlias("citation", "cit"); + //studyCrit.add(Restrictions.like("cit.journal", pJournal.trim(), MatchMode.EXACT)); + studyCrit.add(Restrictions.eq("cit.journal", pJournal)); + studies = (Collection<Study>) studyCrit.list(); + return studies; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 12:04:00
|
Revision: 836 http://treebase.svn.sourceforge.net/treebase/?rev=836&view=rev Author: rvos Date: 2011-05-12 12:03:54 +0000 (Thu, 12 May 2011) Log Message: ----------- implemented findByPublicationDateRange Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 12:03:04 UTC (rev 835) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 12:03:54 UTC (rev 836) @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -12,6 +13,7 @@ import org.cipres.treebase.dao.AbstractDAO; import org.cipres.treebase.domain.admin.Person; import org.cipres.treebase.domain.admin.User; +import org.cipres.treebase.domain.study.Citation; import org.cipres.treebase.domain.study.Study; import org.cipres.treebase.domain.study.StudyCriteria; import org.cipres.treebase.domain.study.StudyHome; @@ -399,5 +401,18 @@ return studies; } + public Collection<Study> findByPublicationDateRange(Date from, Date until) { + Query q = getSession().createQuery( + "from Citation where publishyear between :begin and :end"); + q.setInteger("begin", from.getYear()); + q.setInteger("end", until.getYear()); + Collection<Citation> citations = q.list(); + Set<Study> results = new HashSet<Study>(); + for ( Citation citation : citations ) { + results.add(citation.getStudy()); + } + return results; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 13:38:52
|
Revision: 847 http://treebase.svn.sourceforge.net/treebase/?rev=847&view=rev Author: rvos Date: 2011-05-12 13:38:45 +0000 (Thu, 12 May 2011) Log Message: ----------- Refined to make sure it can deal with queries where begin year and end year are identical Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 12:38:13 UTC (rev 846) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 13:38:45 UTC (rev 847) @@ -402,16 +402,19 @@ } public Collection<Study> findByPublicationDateRange(Date from, Date until) { - Query q = getSession().createQuery( - "from Citation where publishyear between :begin and :end"); - q.setInteger("begin", from.getYear()); - q.setInteger("end", until.getYear()); - Collection<Citation> citations = q.list(); - Set<Study> results = new HashSet<Study>(); - for ( Citation citation : citations ) { - results.add(citation.getStudy()); + int begin = from.getYear(); + int end = until.getYear(); + if ( begin != end ) { + Query q = getSession().createQuery("select study from Citation where publishyear between :begin and :end"); + q.setInteger("begin", begin); + q.setInteger("end", end); + return q.list(); } - return results; + else { + Query q = getSession().createQuery("select study from Citation where publishyear = :begin"); + q.setInteger("begin",begin); + return q.list(); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 14:45:48
|
Revision: 848 http://treebase.svn.sourceforge.net/treebase/?rev=848&view=rev Author: rvos Date: 2011-05-12 14:45:41 +0000 (Thu, 12 May 2011) Log Message: ----------- re-implemented using a range expression Modified Paths: -------------- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java Modified: trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java =================================================================== --- trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 13:38:45 UTC (rev 847) +++ trunk/treebase-core/src/main/java/org/cipres/treebase/dao/study/StudyDAO.java 2011-05-12 14:45:41 UTC (rev 848) @@ -9,6 +9,7 @@ import java.util.Set; import org.apache.log4j.Logger; +import org.cipres.treebase.RangeExpression.MalformedRangeExpression; import org.cipres.treebase.TreebaseUtil; import org.cipres.treebase.dao.AbstractDAO; import org.cipres.treebase.domain.admin.Person; @@ -402,19 +403,20 @@ } public Collection<Study> findByPublicationDateRange(Date from, Date until) { - int begin = from.getYear(); - int end = until.getYear(); - if ( begin != end ) { - Query q = getSession().createQuery("select study from Citation where publishyear between :begin and :end"); - q.setInteger("begin", begin); - q.setInteger("end", end); - return q.list(); + int begin = from.getYear() + 1900; + int end = until.getYear() + 1900; + String range = begin + ".." + end; + Collection<Citation> citations = null; + try { + citations = this.findSomethingByRangeExpression(Citation.class, "publishYear", range); + } catch (MalformedRangeExpression e) { + e.printStackTrace(); } - else { - Query q = getSession().createQuery("select study from Citation where publishyear = :begin"); - q.setInteger("begin",begin); - return q.list(); + Collection<Study> studies = new HashSet<Study>(); + for ( Citation citation : citations ) { + studies.add(citation.getStudy()); } + return studies; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |