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. |