|
From: <rv...@us...> - 2009-07-02 10:47:58
|
Revision: 160
http://treebase.svn.sourceforge.net/treebase/?rev=160&view=rev
Author: rvos
Date: 2009-07-02 10:47:20 +0000 (Thu, 02 Jul 2009)
Log Message:
-----------
Adding a controller that prepares a generic SearchResults object for display in an RSS1.0 file. This controller expects there to be a "searchResults" session variable (i.e. req.getSession().getAttribute("searchResults")) as stored by the search controllers to be in the environment.
Added Paths:
-----------
trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchResultsAsRDFController.java
Added: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchResultsAsRDFController.java
===================================================================
--- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchResultsAsRDFController.java (rev 0)
+++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchResultsAsRDFController.java 2009-07-02 10:47:20 UTC (rev 160)
@@ -0,0 +1,118 @@
+/**
+ *
+ */
+package org.cipres.treebase.web.controllers;
+
+import java.net.URLEncoder;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.cipres.treebase.NamespacedGUID;
+import org.cipres.treebase.PhyloWSPath;
+import org.cipres.treebase.TreebaseIDString;
+import org.cipres.treebase.TreebaseUtil;
+import org.cipres.treebase.domain.matrix.Matrix;
+import org.cipres.treebase.domain.search.SearchResults;
+import org.cipres.treebase.domain.search.SearchResultsFrozen;
+import org.cipres.treebase.domain.search.SearchResultsType;
+import org.cipres.treebase.domain.study.Study;
+import org.cipres.treebase.domain.tree.PhyloTree;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.Controller;
+import org.z3950.zing.cql.CQLNode;
+import org.z3950.zing.cql.CQLParser;
+
+/**
+ * @author rvosa
+ *
+ */
+public class SearchResultsAsRDFController implements Controller {
+
+ public ModelAndView handleRequest(HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ SearchResultsFrozen frozenResults = (SearchResultsFrozen) request.getSession().getAttribute("searchResults");
+ if ( null != frozenResults ) {
+ String phyloWSPath = request.getSession().getAttribute("originalSection") + "/find";
+ SearchResults<?> searchResults = frozenResults.thaw();
+ request.getSession().setAttribute("searchResultsThawed", searchResults);
+// SearchResultsType searchResultsType = searchResults.getResultType();
+// switch(searchResultsType) {
+// case NONE : phyloWSPath = ""; break;
+// case STUDY : phyloWSPath = "study/find"; break;
+// case MATRIX : phyloWSPath = "matrix/find"; break;
+// case TREE : phyloWSPath = "tree/find"; break;
+// case TAXON : phyloWSPath = "taxon/find"; break;
+// }
+
+ StringBuffer domainAddress = new StringBuffer("http://");
+ domainAddress
+ .append(request.getServerName())
+ .append(':')
+ .append(request.getServerPort());
+ StringBuffer baseURL = new StringBuffer(domainAddress);
+ baseURL.append("/treebase-web/phylows");
+ request.getSession().setAttribute("recordSchema", request.getSession().getAttribute("recordSchema"));
+ request.getSession().setAttribute("format", "rss1");
+ request.getSession().setAttribute("baseURL", baseURL.toString());
+ request.getSession().setAttribute("domainAddress", domainAddress.toString());
+ request.getSession().setAttribute("phyloWSPath", phyloWSPath);
+ if ( null != request.getParameter("query") ) {
+ String query = request.getParameter("query");
+ if ( ! TreebaseUtil.isEmpty(query) ) {
+ CQLParser parser = new CQLParser();
+ CQLNode root = parser.parse(query);
+ request.getSession().setAttribute("normalizedCQLQuery", URLEncoder.encode(root.toCQL(),"UTF-8"));
+ }
+ }
+ }
+ return new ModelAndView("searchResultsAsRDF");
+
+
+ /*
+
+ NamespacedGUID namespacedGUID = new NamespacedGUID(request.getParameter("namespacedGUID"));
+ TreebaseIDString treebaseIDString = null;
+ PhyloWSPath phyloWSPath = null;
+ request.setAttribute("hasWebPage", false);
+ request.setAttribute("hasNexus", false);
+ request.setAttribute("hasNeXML", false);
+ request.setAttribute("hasRdf", false);
+ try {
+ treebaseIDString = namespacedGUID.getTreebaseIDString();
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ if ( null != treebaseIDString ) {
+ if ( null != treebaseIDString.getTypePrefix() ) {
+ Class<?> theClass = TreebaseIDString.getClassForPrefix(treebaseIDString.getTypePrefix());
+ if ( null != theClass ) {
+ if ( theClass.isAssignableFrom(PhyloTree.class)
+ || theClass.isAssignableFrom(Matrix.class)
+ || theClass.isAssignableFrom(Study.class) ) {
+ request.setAttribute("hasWebPage", true);
+ request.setAttribute("hasNexus", true);
+ request.setAttribute("hasNeXML", true);
+ request.setAttribute("hasRdf", true);
+ }
+ phyloWSPath = new PhyloWSPath(theClass.getPackage(),namespacedGUID);
+ }
+ }
+ }
+ request.getSession().setAttribute("namespacedGUID", namespacedGUID.toString());
+ // <c:set var="baseURL" value="http://localhost:8080/treebase-web/PhyloWS"/>
+ StringBuffer domainAddress = new StringBuffer("http://");
+ domainAddress
+ .append(request.getServerName())
+ .append(':')
+ .append(request.getServerPort());
+ StringBuffer baseURL = new StringBuffer(domainAddress);
+ baseURL.append("/treebase-web/phylows");
+ request.getSession().setAttribute("baseURL", baseURL.toString());
+ request.getSession().setAttribute("domainAddress", domainAddress.toString());
+ request.getSession().setAttribute("phyloWSPath", phyloWSPath);
+ return new ModelAndView("anyObjectAsRDF");
+ */
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|