| 1 |  |  | 
            
  
    | 2 |  |  | 
            
  
    | 3 |  |  | 
            
  
    | 4 |  |  | 
            
  
    | 5 |  |  | 
            
  
    | 6 |  |  | 
            
  
    | 7 |  |  | 
            
  
    | 8 |  |  | 
            
  
    | 9 |  |  | 
            
  
    | 10 |  |  | 
            
  
    | 11 |  |  | 
            
  
    | 12 |  |  | 
            
  
    | 13 |  |  | 
            
  
    | 14 |  |  | 
            
  
    | 15 |  |  | 
            
  
    | 16 |  |  | 
            
  
    | 17 |  |  | 
            
  
    | 18 |  |  | 
            
  
    | 19 |  |  | 
            
  
    | 20 |  |  | 
            
  
    | 21 |  |  | 
            
  
    | 22 |  |  | 
            
  
    | 23 |  |  | 
            
  
    | 24 |  |  | 
            
  
    | 25 |  |  | 
            
  
    | 26 |  |  | 
            
  
    | 27 |  |  | 
            
  
    | 28 |  |  | 
            
  
    | 29 |  |  | 
            
  
    | 30 |  |  | 
            
  
    | 31 |  |  | 
            
  
    | 32 |  | package net.sourceforge.pebble.web.action; | 
            
  
    | 33 |  |  | 
            
  
    | 34 |  | import net.sourceforge.pebble.Constants; | 
            
  
    | 35 |  | import net.sourceforge.pebble.domain.Blog; | 
            
  
    | 36 |  | import net.sourceforge.pebble.domain.Tag; | 
            
  
    | 37 |  | import net.sourceforge.pebble.web.view.ForwardView; | 
            
  
    | 38 |  | import net.sourceforge.pebble.web.view.View; | 
            
  
    | 39 |  |  | 
            
  
    | 40 |  | import javax.servlet.ServletException; | 
            
  
    | 41 |  | import javax.servlet.http.HttpServletRequest; | 
            
  
    | 42 |  | import javax.servlet.http.HttpServletResponse; | 
            
  
    | 43 |  | import java.io.UnsupportedEncodingException; | 
            
  
    | 44 |  | import java.net.URLEncoder; | 
            
  
    | 45 |  |  | 
            
  
    | 46 |  |  | 
            
  
    | 47 |  |  | 
            
  
    | 48 |  |  | 
            
  
    | 49 |  | @author | 
            
  
    | 50 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 38 (38) | Complexity: 11 | Complexity Density: 0,48 |  | 
  
  
    | 51 |  | public class AdvancedSearchAction extends Action { | 
            
  
    | 52 |  |  | 
            
  
    | 53 |  |  | 
            
  
    | 54 |  |  | 
            
  
    | 55 |  |  | 
            
  
    | 56 |  | @param | 
            
  
    | 57 |  | @param | 
            
  
    | 58 |  | @return | 
            
  
    | 59 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 20 (20) | Complexity: 4 | Complexity Density: 0,25 |  | 
  
  
    | 60 | 0 |  public View process(HttpServletRequest request, HttpServletResponse response) throws ServletException {... | 
            
  
    | 61 | 0 | Blog blog = (Blog)request.getAttribute(Constants.BLOG_KEY); | 
            
  
    | 62 | 0 | StringBuffer query = new StringBuffer(); | 
            
  
    | 63 |  |  | 
            
  
    | 64 | 0 | addTerm(query, "title", request.getParameter("title")); | 
            
  
    | 65 | 0 | addTerm(query, "body", request.getParameter("body")); | 
            
  
    | 66 | 0 | addTerms(query, "category", request.getParameterValues("category")); | 
            
  
    | 67 | 0 | addTerm(query, "author", request.getParameter("author")); | 
            
  
    | 68 |  |  | 
            
  
    | 69 | 0 | String tags = request.getParameter("tags"); | 
            
  
    | 70 | 0 | if (tags != null) { | 
            
  
    | 71 | 0 | String s[] = tags.split(","); | 
            
  
    | 72 | 0 | for (int i = 0; i < s.length; i++) { | 
            
  
    | 73 | 0 | s[i] = Tag.encode(s[i].trim()); | 
            
  
    | 74 |  | } | 
            
  
    | 75 | 0 | addTerms(query, "tag", s); | 
            
  
    | 76 |  | } | 
            
  
    | 77 |  |  | 
            
  
    | 78 | 0 | try { | 
            
  
    | 79 | 0 | String encodedQuery = URLEncoder.encode(query.toString(), blog.getCharacterEncoding()); | 
            
  
    | 80 | 0 | return new ForwardView("/search.action?query=" + encodedQuery); | 
            
  
    | 81 |  | } catch (UnsupportedEncodingException uee) { | 
            
  
    | 82 | 0 | throw new ServletException(uee); | 
            
  
    | 83 |  | } | 
            
  
    | 84 |  | } | 
            
  
    | 85 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 8 (8) | Complexity: 4 | Complexity Density: 1 |  | 
  
  
    | 86 | 0 |  private void addTerm(StringBuffer query, String key, String value) {... | 
            
  
    | 87 | 0 | if (value != null && value.trim().length() > 0) { | 
            
  
    | 88 | 0 | if (query.length() > 0) { | 
            
  
    | 89 | 0 | query.append(" AND "); | 
            
  
    | 90 |  | } | 
            
  
    | 91 | 0 | query.append(key + ":" + value.trim()); | 
            
  
    | 92 |  | } | 
            
  
    | 93 |  | } | 
            
  
    | 94 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 7 (7) | Complexity: 3 | Complexity Density: 1 |  | 
  
  
    | 95 | 0 |  private void addTerms(StringBuffer query, String key, String terms[]) {... | 
            
  
    | 96 | 0 | if (terms != null) { | 
            
  
    | 97 | 0 | for (int i = 0; i < terms.length; i++) { | 
            
  
    | 98 | 0 | addTerm(query, key, terms[i]); | 
            
  
    | 99 |  | } | 
            
  
    | 100 |  | } | 
            
  
    | 101 |  | } | 
            
  
    | 102 |  |  | 
            
  
    | 103 |  | } |