From: <rv...@us...> - 2009-11-17 16:21:58
|
Revision: 273 http://treebase.svn.sourceforge.net/treebase/?rev=273&view=rev Author: rvos Date: 2009-11-17 16:21:50 +0000 (Tue, 17 Nov 2009) Log Message: ----------- Don't handle empty CQL queries. Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2009-11-17 16:08:08 UTC (rev 272) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2009-11-17 16:21:50 UTC (rev 273) @@ -93,21 +93,7 @@ LOGGER.info("formName is '" + formName + "'"); - if ( ! TreebaseUtil.isEmpty(query) ) { - /* - CQLParser parser = new CQLParser(); - CQLNode root = parser.parse(query); - root = normalizeParseTree(root); - Set<Study> queryResults = doCQLQuery(root, new HashSet<Study>(),request, response, errors); - StudySearchResults tsr = new StudySearchResults(queryResults); - saveSearchResults(request, tsr); - if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { - return new ModelAndView("search/studySearch", Constants.RESULT_SET, tsr); - } - else { - return this.searchResultsAsRDF(tsr, request, root); - } - */ + if ( ! TreebaseUtil.isEmpty(query) && ! query.equals("")) { return this.handleQueryRequest(request, response, errors); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2009-11-17 16:47:48
|
Revision: 274 http://treebase.svn.sourceforge.net/treebase/?rev=274&view=rev Author: rvos Date: 2009-11-17 16:47:32 +0000 (Tue, 17 Nov 2009) Log Message: ----------- Added log line for CQL query Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2009-11-17 16:21:50 UTC (rev 273) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2009-11-17 16:47:32 UTC (rev 274) @@ -94,6 +94,7 @@ LOGGER.info("formName is '" + formName + "'"); if ( ! TreebaseUtil.isEmpty(query) && ! query.equals("")) { + LOGGER.info("query is '" + query + "'"); return this.handleQueryRequest(request, response, errors); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2010-03-12 23:25:18
|
Revision: 559 http://treebase.svn.sourceforge.net/treebase/?rev=559&view=rev Author: rvos Date: 2010-03-12 23:25:12 +0000 (Fri, 12 Mar 2010) Log Message: ----------- Added mapping from CQL search predicate prism.publicationName to Study.findByJournal functionality. Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2010-03-12 23:23:11 UTC (rev 558) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2010-03-12 23:25:12 UTC (rev 559) @@ -77,6 +77,7 @@ byLegacyID, byTitle, byKeyword, + byJournal } protected ModelAndView onSubmit( @@ -191,6 +192,8 @@ results.addAll(doSearch(request, response, SearchType.inCitation, errors, term.getTerm())); } else if ( index.equals("tb.identifier.study.tb1") ) { results.addAll(doSearch(request, response, SearchType.byLegacyID, errors, term.getTerm())); + } else if ( index.startsWith("prism.publicationName") ) { + results.addAll(doSearch(request, response, SearchType.byJournal, errors, term.getTerm())); } else { // issue warnings addMessage(request, "Unsupported index: " + index); @@ -279,6 +282,9 @@ case byKeyword: matches = studyService.findByKeyword(keywordSearchTerm); break; + case byJournal: + matches = studyService.findByJournal(keywordSearchTerm, false); + break; default: throw new Error ("Unknown search type '" + searchType + "'"); } 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:14:01
|
Revision: 844 http://treebase.svn.sourceforge.net/treebase/?rev=844&view=rev Author: rvos Date: 2011-05-12 12:13:55 +0000 (Thu, 12 May 2011) Log Message: ----------- The submission creation date (prism.creationDate), study last modification date (tb.lastModifiedDate) and the citation publication date (prism.publicationDate) can now also be used as search predicates. A query must be phrased either as before, i.e. <index> < <date>, or after, i.e. <index> > <date>. The date string must be parseable using DateFormat.parse(s). Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-05-12 12:09:30 UTC (rev 843) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-05-12 12:13:55 UTC (rev 844) @@ -2,7 +2,9 @@ package org.cipres.treebase.web.controllers; import java.io.IOException; +import java.text.ParseException; import java.util.Collection; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -20,6 +22,8 @@ import org.cipres.treebase.domain.search.StudySearchResults; import org.cipres.treebase.domain.study.Study; import org.cipres.treebase.domain.study.StudyService; +import org.cipres.treebase.domain.study.Submission; +import org.cipres.treebase.domain.study.SubmissionService; import org.cipres.treebase.web.Constants; import org.cipres.treebase.web.util.RequestMessageSetter; import org.springframework.validation.BindException; @@ -31,8 +35,11 @@ import org.z3950.zing.cql.CQLOrNode; import org.z3950.zing.cql.CQLParseException; import org.z3950.zing.cql.CQLParser; +import org.z3950.zing.cql.CQLRelation; import org.z3950.zing.cql.CQLTermNode; +import com.ibm.icu.text.DateFormat; + /** * StudySearchController.java * @@ -78,7 +85,11 @@ byLegacyID, byTitle, byKeyword, - byJournal + byJournal, + byCreationDate, + byPublicationDate, + byReleaseDate, + byLastModifiedDate } protected ModelAndView onSubmit( @@ -132,7 +143,7 @@ } // XXX we now never do an exact match with terms provided through the web app. We can change // this, e.g. by adding a check box whose value is the boolean argument of doSearch() - Collection<Study> matches = doSearch(request, response, searchType, errors,searchTerm,false); + Collection<Study> matches = doSearch(request, response, searchType, errors,searchTerm,false,null); if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { SearchResults<Study> newRes = intersectSearchResults(oldRes, new StudySearchResults(matches), new RequestMessageSetter(request), "No matching studies found"); @@ -154,7 +165,7 @@ HttpServletRequest request, HttpServletResponse response, BindException errors - ) throws InstantiationException { + ) throws InstantiationException, ParseException { if ( node instanceof CQLBooleanNode ) { Set<Study> resultsLeft = doCQLQuery(((CQLBooleanNode)node).left,results, request, response, errors); Set<Study> resultsRight = doCQLQuery(((CQLBooleanNode)node).right,results, request, response, errors); @@ -182,23 +193,32 @@ else if ( node instanceof CQLTermNode ) { CQLTermNode term = (CQLTermNode)node; boolean exactMatch = term.getRelation().getBase().equals("=="); + CQLRelation relation = term.getRelation(); String index = term.getIndex(); if ( index.startsWith("tb.title") ) { - results.addAll(doSearch(request, response, SearchType.byTitle, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.byTitle, errors, term.getTerm(),exactMatch,relation)); } else if ( index.equals("tb.identifier.study") ) { - results.addAll(doSearch(request, response, SearchType.byID, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.byID, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("dcterms.contributor") ) { - results.addAll(doSearch(request, response, SearchType.byAuthorName, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.byAuthorName, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("dcterms.abstract") ) { - results.addAll(doSearch(request, response, SearchType.inAbstract, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.inAbstract, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("dcterms.subject") ) { - results.addAll(doSearch(request, response, SearchType.byKeyword, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.byKeyword, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("dcterms.bibliographicCitation") ) { - results.addAll(doSearch(request, response, SearchType.inCitation, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.inCitation, errors, term.getTerm(),exactMatch,relation)); } else if ( index.equals("tb.identifier.study.tb1") ) { - results.addAll(doSearch(request, response, SearchType.byLegacyID, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.byLegacyID, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("prism.publicationName") ) { - results.addAll(doSearch(request, response, SearchType.byJournal, errors, term.getTerm(),exactMatch)); + results.addAll(doSearch(request, response, SearchType.byJournal, errors, term.getTerm(),exactMatch,relation)); + } else if ( index.startsWith("dc.date") ) { + results.addAll(doSearch(request,response, SearchType.byReleaseDate, errors, term.getTerm(),exactMatch,relation)); + } else if ( index.startsWith("prism.creationDate") ) { + results.addAll(doSearch(request,response, SearchType.byCreationDate, errors, term.getTerm(),exactMatch,relation)); + } else if ( index.startsWith("prism.publicationDate") ) { + results.addAll(doSearch(request,response, SearchType.byPublicationDate, errors, term.getTerm(),exactMatch,relation)); + } else if ( index.startsWith("tb.lastModifiedDate") ) { + results.addAll(doSearch(request,response, SearchType.byLastModifiedDate, errors, term.getTerm(),exactMatch,relation)); } else { // issue warnings addMessage(request, "Unsupported index: " + index); @@ -215,11 +235,12 @@ SearchType searchType, BindException errors, String searchTerm, - boolean exactMatch) throws InstantiationException { + boolean exactMatch, CQLRelation relation) throws InstantiationException, ParseException { String keywordSearchTerm = "%" + searchTerm + "%"; Collection<Study> matches; - StudyService studyService = getSearchService().getStudyService(); + StudyService studyService = getSearchService().getStudyService(); + SubmissionService submissionService = getSearchService().getSubmissionService(); switch (searchType) { case byID: @@ -257,6 +278,15 @@ case byKeyword: matches = studyService.findByKeyword(keywordSearchTerm); break; + case byLastModifiedDate: + matches = findByLastModified(searchTerm, relation, submissionService); + break; + case byPublicationDate: + matches = findByPublicationDate(searchTerm, relation, studyService); + break; + case byCreationDate: + matches = findByCreationDate(searchTerm, relation, submissionService); + break; case byJournal: { if ( exactMatch ) { @@ -273,6 +303,67 @@ return matches; } + private Collection<Study> findByCreationDate(String searchTerm, + CQLRelation relation, SubmissionService submissionService) throws ParseException { + Collection<Study> matches; + Date from = null; + Date until = null; + DateFormat df = DateFormat.getDateInstance(); + if ( relation.getBase().startsWith(">") ) { + from = df.parse(searchTerm); + until = new Date(); // i.e. now + } + else if ( relation.getBase().startsWith("<") ) { + from = new Date(0); // i.e. epoch + until = df.parse(searchTerm); + } + Collection<Submission> submissions = submissionService.findSubmissionByCreateDateRange(from, until); + matches = new HashSet<Study>(); + for ( Submission submission : submissions ) { + matches.add(submission.getStudy()); + } + return matches; + } + + private Collection<Study> findByPublicationDate(String searchTerm, + CQLRelation relation, StudyService studyService) throws ParseException { + Date from = null; + Date until = null; + DateFormat df = DateFormat.getDateInstance(); + if ( relation.getBase().startsWith(">") ) { + from = df.parse(searchTerm); + until = new Date(); // i.e. now + } + else if ( relation.getBase().startsWith("<") ) { + from = new Date(0); // i.e. epoch + until = df.parse(searchTerm); + } + return studyService.findByPublicationDateRange(from, until); + } + + private Collection<Study> findByLastModified(String searchTerm, + CQLRelation relation, SubmissionService submissionService) + throws ParseException { + Collection<Study> matches; + Date from = null; + Date until = null; + DateFormat df = DateFormat.getDateInstance(); + if ( relation.getBase().startsWith(">") ) { + from = df.parse(searchTerm); + until = new Date(); // i.e. now + } + else if ( relation.getBase().startsWith("<") ) { + from = new Date(0); // i.e. epoch + until = df.parse(searchTerm); + } + Collection<Submission> submissions = submissionService.findSubmissionByLastModifiedDateRange(from, until); + matches = new HashSet<Study>(); + for ( Submission submission : submissions ) { + matches.add(submission.getStudy()); + } + return matches; + } + @Override SearchResultsType currentSearchType() { return SearchResultsType.STUDY; @@ -286,7 +377,7 @@ @Override protected ModelAndView handleQueryRequest(HttpServletRequest request, HttpServletResponse response, BindException errors,String query) - throws CQLParseException, IOException, InstantiationException { + throws CQLParseException, IOException, InstantiationException, ParseException { //String query = request.getParameter("query"); CQLParser parser = new CQLParser(); CQLNode root = parser.parse(query); 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:38:19
|
Revision: 846 http://treebase.svn.sourceforge.net/treebase/?rev=846&view=rev Author: rvos Date: 2011-05-12 12:38:13 +0000 (Thu, 12 May 2011) Log Message: ----------- Now using prism.modificationDate instead of tb.lastModifiedDate as search predicate to indicate when a study record was last modified. Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-05-12 12:37:33 UTC (rev 845) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-05-12 12:38:13 UTC (rev 846) @@ -217,7 +217,7 @@ results.addAll(doSearch(request,response, SearchType.byCreationDate, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("prism.publicationDate") ) { results.addAll(doSearch(request,response, SearchType.byPublicationDate, errors, term.getTerm(),exactMatch,relation)); - } else if ( index.startsWith("tb.lastModifiedDate") ) { + } else if ( index.startsWith("prism.modificationDate") ) { results.addAll(doSearch(request,response, SearchType.byLastModifiedDate, errors, term.getTerm(),exactMatch,relation)); } else { // issue warnings This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-26 19:36:34
|
Revision: 888 http://treebase.svn.sourceforge.net/treebase/?rev=888&view=rev Author: rvos Date: 2011-05-26 19:36:28 +0000 (Thu, 26 May 2011) Log Message: ----------- This class was using the wrong DateFormat, we're using the one from java.text.* instead Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-05-26 19:06:26 UTC (rev 887) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-05-26 19:36:28 UTC (rev 888) @@ -38,7 +38,7 @@ import org.z3950.zing.cql.CQLRelation; import org.z3950.zing.cql.CQLTermNode; -import com.ibm.icu.text.DateFormat; +import java.text.DateFormat; /** * StudySearchController.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hs...@us...> - 2011-06-08 19:44:21
|
Revision: 904 http://treebase.svn.sourceforge.net/treebase/?rev=904&view=rev Author: hshyket Date: 2011-06-08 19:44:15 +0000 (Wed, 08 Jun 2011) Log Message: ----------- Updating the allowed date format that is parsed to be ISO 8601 compliant Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-06-08 14:02:50 UTC (rev 903) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-06-08 19:44:15 UTC (rev 904) @@ -25,7 +25,9 @@ import org.cipres.treebase.domain.study.Submission; import org.cipres.treebase.domain.study.SubmissionService; import org.cipres.treebase.web.Constants; +import org.cipres.treebase.web.model.Identify; import org.cipres.treebase.web.util.RequestMessageSetter; +import org.cipres.treebase.web.util.IdentifyUtil; import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.z3950.zing.cql.CQLAndNode; @@ -54,6 +56,7 @@ */ private static final Logger LOGGER = Logger.getLogger(StudySearchController.class); protected String mValidateTaxaView; + private Identify identify; public String getValidateTaxaView() { return mValidateTaxaView; @@ -308,14 +311,17 @@ Collection<Study> matches; Date from = null; Date until = null; - DateFormat df = DateFormat.getDateInstance(); + //DateFormat df = DateFormat.getDateInstance(); if ( relation.getBase().startsWith(">") ) { - from = df.parse(searchTerm); + //from = df.parse(searchTerm); + from = IdentifyUtil.parseGranularity(identify.getGranularityPattern(), searchTerm); until = new Date(); // i.e. now } else if ( relation.getBase().startsWith("<") ) { from = new Date(0); // i.e. epoch - until = df.parse(searchTerm); + //until = df.parse(searchTerm); + until = IdentifyUtil.parseGranularity(identify.getGranularityPattern(), searchTerm); + } Collection<Submission> submissions = submissionService.findSubmissionByCreateDateRange(from, until); matches = new HashSet<Study>(); @@ -329,14 +335,17 @@ CQLRelation relation, StudyService studyService) throws ParseException { Date from = null; Date until = null; - DateFormat df = DateFormat.getDateInstance(); + //DateFormat df = DateFormat.getDateInstance(); + if ( relation.getBase().startsWith(">") ) { - from = df.parse(searchTerm); + //from = df.parse(searchTerm); + from = IdentifyUtil.parseGranularity(identify.getGranularityPattern(), searchTerm); until = new Date(); // i.e. now } else if ( relation.getBase().startsWith("<") ) { from = new Date(0); // i.e. epoch - until = df.parse(searchTerm); + //until = df.parse(searchTerm); + until = IdentifyUtil.parseGranularity(identify.getGranularityPattern(), searchTerm); } return studyService.findByPublicationDateRange(from, until); } @@ -347,14 +356,16 @@ Collection<Study> matches; Date from = null; Date until = null; - DateFormat df = DateFormat.getDateInstance(); + //DateFormat df = DateFormat.getDateInstance(); if ( relation.getBase().startsWith(">") ) { - from = df.parse(searchTerm); + from = IdentifyUtil.parseGranularity(identify.getGranularityPattern(), searchTerm); + //from = df.parse(searchTerm); until = new Date(); // i.e. now } else if ( relation.getBase().startsWith("<") ) { from = new Date(0); // i.e. epoch - until = df.parse(searchTerm); + //until = df.parse(searchTerm); + until = IdentifyUtil.parseGranularity(identify.getGranularityPattern(), searchTerm); } Collection<Submission> submissions = submissionService.findSubmissionByLastModifiedDateRange(from, until); matches = new HashSet<Study>(); @@ -415,4 +426,12 @@ mapping.put("dcterms.identifier", "tb.identifier.study"); return mapping; } + + public Identify getIdentify() { + return identify; + } + + public void setIdentify(Identify identify) { + this.identify = identify; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hs...@us...> - 2011-09-15 14:20:41
|
Revision: 953 http://treebase.svn.sourceforge.net/treebase/?rev=953&view=rev Author: hshyket Date: 2011-09-15 14:20:34 +0000 (Thu, 15 Sep 2011) Log Message: ----------- Search using the dc.date parameter (in the URL) will not do a search by last modified date (exactly like prism.modificationDate) Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-09-12 07:10:22 UTC (rev 952) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-09-15 14:20:34 UTC (rev 953) @@ -215,7 +215,7 @@ } else if ( index.startsWith("prism.publicationName") ) { results.addAll(doSearch(request, response, SearchType.byJournal, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("dc.date") ) { - results.addAll(doSearch(request,response, SearchType.byReleaseDate, errors, term.getTerm(),exactMatch,relation)); + results.addAll(doSearch(request,response, SearchType.byLastModifiedDate, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("prism.creationDate") ) { results.addAll(doSearch(request,response, SearchType.byCreationDate, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("prism.publicationDate") ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hs...@us...> - 2011-09-15 17:30:58
|
Revision: 957 http://treebase.svn.sourceforge.net/treebase/?rev=957&view=rev Author: hshyket Date: 2011-09-15 17:30:52 +0000 (Thu, 15 Sep 2011) Log Message: ----------- Updating it so that any data provided in RSS format is not saved in the memory search results. Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-09-15 15:50:53 UTC (rev 956) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-09-15 17:30:52 UTC (rev 957) @@ -395,7 +395,9 @@ root = normalizeParseTree(root); Set<Study> queryResults = doCQLQuery(root, new HashSet<Study>(),request, response, errors); StudySearchResults tsr = new StudySearchResults(queryResults); - saveSearchResults(request, tsr); + if (! request.getParameter("format").equals("rss1")) { + saveSearchResults(request, tsr); + } if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { return new ModelAndView("search/studySearch", Constants.RESULT_SET, tsr); } @@ -414,7 +416,9 @@ res = tsr.convertToTaxa(); } } - this.saveSearchResults(request, res); + if (! request.getParameter("format").equals("rss1")) { + this.saveSearchResults(request, res); + } return this.searchResultsAsRDF(res, request, root, schema, "study"); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hs...@us...> - 2011-09-26 12:57:17
|
Revision: 964 http://treebase.svn.sourceforge.net/treebase/?rev=964&view=rev Author: hshyket Date: 2011-09-26 12:57:11 +0000 (Mon, 26 Sep 2011) Log Message: ----------- Fixing API query calls with no format Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-09-23 17:15:15 UTC (rev 963) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2011-09-26 12:57:11 UTC (rev 964) @@ -395,10 +395,8 @@ root = normalizeParseTree(root); Set<Study> queryResults = doCQLQuery(root, new HashSet<Study>(),request, response, errors); StudySearchResults tsr = new StudySearchResults(queryResults); - if (! request.getParameter("format").equals("rss1")) { + if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { saveSearchResults(request, tsr); - } - if ( TreebaseUtil.isEmpty(request.getParameter("format")) || ! request.getParameter("format").equals("rss1") ) { return new ModelAndView("search/studySearch", Constants.RESULT_SET, tsr); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2012-02-17 18:18:21
|
Revision: 1073 http://treebase.svn.sourceforge.net/treebase/?rev=1073&view=rev Author: rvos Date: 2012-02-17 18:18:14 +0000 (Fri, 17 Feb 2012) Log Message: ----------- The search controller can now return results for a DOI, for which the PhyloWS predicate is prism.doi Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2012-02-17 18:17:16 UTC (rev 1072) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/StudySearchController.java 2012-02-17 18:18:14 UTC (rev 1073) @@ -92,7 +92,8 @@ byCreationDate, byPublicationDate, byReleaseDate, - byLastModifiedDate + byLastModifiedDate, + byDOI } protected ModelAndView onSubmit( @@ -141,7 +142,10 @@ searchType = SearchType.inCitation; } else if (buttonName.equals("abstractKeyword")) { searchType = SearchType.inAbstract; - } else { + } else if (buttonName.equals("doiKeyword")) { + searchType = SearchType.byDOI; + } + else { throw new Error("Unknown search button name '" + buttonName + "'"); } // XXX we now never do an exact match with terms provided through the web app. We can change @@ -222,7 +226,10 @@ results.addAll(doSearch(request,response, SearchType.byPublicationDate, errors, term.getTerm(),exactMatch,relation)); } else if ( index.startsWith("prism.modificationDate") ) { results.addAll(doSearch(request,response, SearchType.byLastModifiedDate, errors, term.getTerm(),exactMatch,relation)); - } else { + } else if ( index.startsWith("prism.doi") ) { + results.addAll(doSearch(request,response,SearchType.byDOI, errors, term.getTerm(), exactMatch,relation)); + } + else { // issue warnings addMessage(request, "Unsupported index: " + index); } @@ -241,7 +248,7 @@ boolean exactMatch, CQLRelation relation) throws InstantiationException, ParseException { String keywordSearchTerm = "%" + searchTerm + "%"; - Collection<Study> matches; + Collection<Study> matches = new HashSet<Study>(); StudyService studyService = getSearchService().getStudyService(); SubmissionService submissionService = getSearchService().getSubmissionService(); @@ -290,6 +297,14 @@ case byCreationDate: matches = findByCreationDate(searchTerm, relation, submissionService); break; + case byDOI: + { + Study result = studyService.findByDOI(searchTerm); + if ( null != result ) { + matches.add(result); + } + break; + } case byJournal: { if ( exactMatch ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |