dpillot     2005/10/12 12:41:22 CEST

  Modified files:
    core/src/java/org/jahia/engines/importexport 
                                                 ManageContentPicker.java 
  Log:
  npe bugfix  & avd queries enhacement
  
  Revision  Changes    Path
  1.38      +44 -13    
jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java.diff?r1=1.37&r2=1.38&f=h
  
  
  
  Index: ManageContentPicker.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- ManageContentPicker.java  11 Oct 2005 15:18:16 -0000      1.37
  +++ ManageContentPicker.java  12 Oct 2005 10:41:22 -0000      1.38
  @@ -35,7 +35,7 @@
    *
    * @author Thomas Draier, joe Pillot
    * @author ${User}
  - * @version $Id: ManageContentPicker.java,v 1.37 2005/10/11 15:18:16 dpillot 
Exp $
  + * @version $Id: ManageContentPicker.java,v 1.38 2005/10/12 10:41:22 dpillot 
Exp $
    */
   public class ManageContentPicker {
       private static org.apache.log4j.Logger logger =
  @@ -179,17 +179,14 @@
           // main query
           String searchString = (String) 
processingContext.getParameter("query");
           String smode = (String) processingContext.getParameter("condition1");
  -        if (searchString == null || searchString.equalsIgnoreCase("")) {
  +        String query_concat_mode=(String) 
processingContext.getParameter("concat");
  +
  +        // checking NPE & emptyness
  +        if(searchString ==null) searchString="";
  +        if(smode==null || smode.equalsIgnoreCase("")) smode="or";
  +        if(query_concat_mode==null || 
query_concat_mode.equalsIgnoreCase("")) query_concat_mode="or";
   
  -            engineMap.put("searchString", "");
  -            engineMap.put("smode","or");
  -            engineMap.put("concat","or");
  -            engineMap.put("orderby","score");
  -            logger.warn("searching string is empty");
  -            return;
  -        }
           // alt queries non-use for now
  -        String query_concat_mode=(String) 
processingContext.getParameter("concat");
           String query2=(String) processingContext.getParameter("query2");
           String smode2=(String) processingContext.getParameter("condition2");
           String query3=(String) processingContext.getParameter("query3");
  @@ -198,9 +195,25 @@
           String smode4=(String) processingContext.getParameter("condition4");
   
   
  +       //check on emptyness of queries
  +        if ((searchString == null || searchString.equalsIgnoreCase(""))
  +                && (query2==null || query2.equalsIgnoreCase(""))
  +                && (query3==null || query3.equalsIgnoreCase(""))
  +                && (query4==null || query4.equalsIgnoreCase(""))) {
  +
  +            engineMap.put("searchString", "");
  +            engineMap.put("smode","or");
  +            engineMap.put("concat","or");
  +            engineMap.put("orderby","score");
  +            logger.warn("searching string is empty");
  +            //return;
  +        }
  +
  +
  +
           //orderby parameter
           String orderBy = (String) processingContext.getParameter("orderby");
  -        if (orderBy == null) {
  +        if (orderBy == null || orderBy.equalsIgnoreCase("")) {
               orderBy = "score";
               logger.warn("order set on default score");
           }
  @@ -217,6 +230,17 @@
               searchString=searchString.replaceAll("\\s"," AND ");
           }
   
  +        //adding advanced queries
  +        String advplus=" OR ";
  +        if(query_concat_mode.equalsIgnoreCase("and")) advplus=" OR ";
  +        if(query2!=null && !query2.equalsIgnoreCase("")){
  +            String q="";
  +            if(smode2.equalsIgnoreCase("creator")) q="creator:"+query2;
  +            if(smode2.equalsIgnoreCase("keywords")) q="keywords:"+query2;
  +            if(smode2.equalsIgnoreCase("pageid")) 
searchString="page:"+query2;//ignore with majesty all other queries
  +            //if(smode2.equalsIgnoreCase("date")) q="keywords:"+query2;
  +            searchString=searchString+advplus+q;
  +        }
           //summary
           logger.warn("[init parameters from request: "
                   + " query:" + searchString
  @@ -240,9 +264,11 @@
           // we search only if we have smtg to search
           if (!"".equals(searchString)) {
               JahiaSearchResultBuilder resultBuilder = new 
ContainerSearchResultBuilderImpl();
  +            searchString.trim();
   
               if (searchString.startsWith("page:")) {
  -                int pageId = Integer.parseInt(searchString.substring(5));
  +
  +                int pageId = 
Integer.parseInt(searchString.substring(5,searchString.indexOf(" ")));
                   searchResults = new JahiaSearchResult(resultBuilder);
                   ContentPage cp = 
ServicesRegistry.getInstance().getJahiaPageService().lookupContentPage(pageId, 
false);
                   JahiaContainersService jahiaContainersService = 
ServicesRegistry.getInstance().getJahiaContainersService();
  @@ -416,6 +442,7 @@
               }
   
               //test for metadatas values - joe
  +            /*
               for (Iterator iterator = results.values().iterator(); 
iterator.hasNext();) {
                   JahiaSearchHit hit = (JahiaSearchHit) iterator.next();
                   ParsedObject po = hit.getParsedObject();
  @@ -443,8 +470,9 @@
                       logger.debug("LOOPING " + 
cf.getDisplayName(processingContext) + ":" + cf.getValue(processingContext));
                   }
   
  -            }//end big loop.
   
  +            }//end big loop.
  +             */
               //sorting by score
               orderBy("score", engineMap, myResults, results);
               /*
  @@ -575,6 +603,9 @@
   }
   /**
    * $Log: ManageContentPicker.java,v $
  + * Revision 1.38  2005/10/12 10:41:22  dpillot
  + * npe bugfix  & avd queries enhacement
  + *
    * Revision 1.37  2005/10/11 15:18:16  dpillot
    * added support for limited advanced queries
    *
  

Reply via email to