1 18 19 package org.apache.roller.ui.rendering.util; 20 21 import javax.servlet.http.HttpServletRequest ; 22 import org.apache.commons.logging.Log; 23 import org.apache.commons.logging.LogFactory; 24 import org.apache.roller.RollerException; 25 import org.apache.roller.model.RollerFactory; 26 import org.apache.roller.model.WeblogManager; 27 import org.apache.roller.pojos.WeblogCategoryData; 28 import org.apache.roller.util.URLUtilities; 29 30 31 34 public class WeblogSearchRequest extends WeblogRequest { 35 36 private static Log log = LogFactory.getLog(WeblogSearchRequest.class); 37 38 private static final String SEARCH_SERVLET = "/roller-ui/rendering/search"; 39 40 private String query = null; 42 private int pageNum = 0; 43 private String weblogCategoryName = null; 44 45 private WeblogCategoryData weblogCategory = null; 47 48 49 public WeblogSearchRequest() {} 50 51 52 public WeblogSearchRequest(HttpServletRequest request) 53 throws InvalidRequestException { 54 55 super(request); 58 59 String servlet = request.getServletPath(); 60 61 String pathInfo = this.getPathInfo(); 63 64 if(servlet == null || !SEARCH_SERVLET.equals(servlet)) { 66 throw new InvalidRequestException("not a weblog search request, "+ 67 request.getRequestURL()); 68 } 69 70 if(pathInfo != null) { 71 throw new InvalidRequestException("invalid path info, "+ 72 request.getRequestURL()); 73 } 74 75 76 84 if(request.getParameter("q") != null && 85 request.getParameter("q").trim().length() > 0) { 86 this.query = request.getParameter("q"); 87 } 88 89 if(request.getParameter("page") != null) { 90 String pageInt = request.getParameter("page"); 91 try { 92 this.pageNum = Integer.parseInt(pageInt); 93 } catch(NumberFormatException e) { 94 } 96 } 97 98 if(request.getParameter("cat") != null && 99 request.getParameter("cat").trim().length() > 0) { 100 this.weblogCategoryName = 101 URLUtilities.decode(request.getParameter("cat")); 102 103 if(!this.weblogCategoryName.startsWith("/")) { 105 this.weblogCategoryName = "/"+this.weblogCategoryName; 106 } 107 } 108 } 109 110 public String getQuery() { 111 return query; 112 } 113 114 public void setQuery(String query) { 115 this.query = query; 116 } 117 118 public int getPageNum() { 119 return pageNum; 120 } 121 122 public void setPageNum(int pageNum) { 123 this.pageNum = pageNum; 124 } 125 126 public String getWeblogCategoryName() { 127 return weblogCategoryName; 128 } 129 130 public void setWeblogCategoryName(String weblogCategory) { 131 this.weblogCategoryName = weblogCategory; 132 } 133 134 public WeblogCategoryData getWeblogCategory() { 135 136 if(weblogCategory == null && weblogCategoryName != null) { 137 try { 138 WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager(); 139 weblogCategory = wmgr.getWeblogCategoryByPath(getWeblog(), weblogCategoryName); 140 } catch (RollerException ex) { 141 log.error("Error getting weblog category "+weblogCategoryName, ex); 142 } 143 } 144 145 return weblogCategory; 146 } 147 148 public void setWeblogCategory(WeblogCategoryData weblogCategory) { 149 this.weblogCategory = weblogCategory; 150 } 151 152 } 153 | Popular Tags |