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
*