Author: kwright
Date: Sun Feb 24 14:18:11 2013
New Revision: 1449485

URL: http://svn.apache.org/r1449485
Log:
Complete code for history reports.

Modified:
    
manifoldcf/branches/CONNECTORS-63/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java

Modified: 
manifoldcf/branches/CONNECTORS-63/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-63/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java?rev=1449485&r1=1449484&r2=1449485&view=diff
==============================================================================
--- 
manifoldcf/branches/CONNECTORS-63/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
 (original)
+++ 
manifoldcf/branches/CONNECTORS-63/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
 Sun Feb 24 14:18:11 2013
@@ -2412,9 +2412,32 @@ public class ManifoldCF extends org.apac
         return READRESULT_BADARGS;
       }
       
-      // MHL
-      BucketDescription idBucket = new BucketDescription("()",false);
-      
+      BucketDescription idBucket;
+      List<String> idBucketList = queryParameters.get("idbucket");
+      List<String> idBucketInsensitiveList = 
queryParameters.get("idbucket_insensitive");
+      if (idBucketList != null && idBucketInsensitiveList != null)
+      {
+        createErrorNode(output,"Either use idbucket or idbucket_insensitive, 
not both.");
+        return READRESULT_BADARGS;
+      }
+      boolean isInsensitiveIdBucket;
+      if (idBucketInsensitiveList != null)
+      {
+        idBucketList = idBucketInsensitiveList;
+        isInsensitiveIdBucket = true;
+      }
+      else
+        isInsensitiveIdBucket = false;
+      if (idBucketList == null || idBucketList.size() == 0)
+        idBucket = new BucketDescription("()",false);
+      else if (idBucketList.size() > 1)
+      {
+        createErrorNode(output,"Multiple idbucket regexps specified.");
+        return READRESULT_BADARGS;
+      }
+      else
+        idBucket = new 
BucketDescription(idBucketList.get(0),isInsensitiveIdBucket);
+
       long interval;
       List<String> intervalList = queryParameters.get("interval");
       if (intervalList == null || intervalList.size() == 0)
@@ -2440,8 +2463,31 @@ public class ManifoldCF extends org.apac
         return READRESULT_BADARGS;
       }
       
-      // MHL
-      BucketDescription idBucket = new BucketDescription("()",false);
+      BucketDescription idBucket;
+      List<String> idBucketList = queryParameters.get("idbucket");
+      List<String> idBucketInsensitiveList = 
queryParameters.get("idbucket_insensitive");
+      if (idBucketList != null && idBucketInsensitiveList != null)
+      {
+        createErrorNode(output,"Either use idbucket or idbucket_insensitive, 
not both.");
+        return READRESULT_BADARGS;
+      }
+      boolean isInsensitiveIdBucket;
+      if (idBucketInsensitiveList != null)
+      {
+        idBucketList = idBucketInsensitiveList;
+        isInsensitiveIdBucket = true;
+      }
+      else
+        isInsensitiveIdBucket = false;
+      if (idBucketList == null || idBucketList.size() == 0)
+        idBucket = new BucketDescription("()",false);
+      else if (idBucketList.size() > 1)
+      {
+        createErrorNode(output,"Multiple idbucket regexps specified.");
+        return READRESULT_BADARGS;
+      }
+      else
+        idBucket = new 
BucketDescription(idBucketList.get(0),isInsensitiveIdBucket);
       
       long interval;
       List<String> intervalList = queryParameters.get("interval");
@@ -2460,12 +2506,58 @@ public class ManifoldCF extends org.apac
     }
     else if (reportType.equals("result"))
     {
-      // MHL
-      BucketDescription resultCodeBucket = new BucketDescription("()",false);
-      
-      // MHL
-      BucketDescription idBucket = new BucketDescription("(.*)",false);
-      
+      BucketDescription idBucket;
+      List<String> idBucketList = queryParameters.get("idbucket");
+      List<String> idBucketInsensitiveList = 
queryParameters.get("idbucket_insensitive");
+      if (idBucketList != null && idBucketInsensitiveList != null)
+      {
+        createErrorNode(output,"Either use idbucket or idbucket_insensitive, 
not both.");
+        return READRESULT_BADARGS;
+      }
+      boolean isInsensitiveIdBucket;
+      if (idBucketInsensitiveList != null)
+      {
+        idBucketList = idBucketInsensitiveList;
+        isInsensitiveIdBucket = true;
+      }
+      else
+        isInsensitiveIdBucket = false;
+      if (idBucketList == null || idBucketList.size() == 0)
+        idBucket = new BucketDescription("()",false);
+      else if (idBucketList.size() > 1)
+      {
+        createErrorNode(output,"Multiple idbucket regexps specified.");
+        return READRESULT_BADARGS;
+      }
+      else
+        idBucket = new 
BucketDescription(idBucketList.get(0),isInsensitiveIdBucket);
+
+      BucketDescription resultCodeBucket;
+      List<String> resultCodeBucketList = 
queryParameters.get("resultcodebucket");
+      List<String> resultCodeBucketInsensitiveList = 
queryParameters.get("resultcodebucket_insensitive");
+      if (resultCodeBucketList != null && resultCodeBucketInsensitiveList != 
null)
+      {
+        createErrorNode(output,"Either use resultcodebucket or 
resultcodebucket_insensitive, not both.");
+        return READRESULT_BADARGS;
+      }
+      boolean isInsensitiveResultCodeBucket;
+      if (resultCodeBucketInsensitiveList != null)
+      {
+        resultCodeBucketList = resultCodeBucketInsensitiveList;
+        isInsensitiveResultCodeBucket = true;
+      }
+      else
+        isInsensitiveResultCodeBucket = false;
+      if (resultCodeBucketList == null || resultCodeBucketList.size() == 0)
+        resultCodeBucket = new BucketDescription("(.*)",false);
+      else if (resultCodeBucketList.size() > 1)
+      {
+        createErrorNode(output,"Multiple resultcodebucket regexps specified.");
+        return READRESULT_BADARGS;
+      }
+      else
+        resultCodeBucket = new 
BucketDescription(resultCodeBucketList.get(0),isInsensitiveResultCodeBucket);
+
       result = 
connectionManager.genHistoryResultCodes(connectionName,filterCriteria,sortOrder,resultCodeBucket,idBucket,startRow,rowCount);
       resultColumns = new String[]{"idbucket","resultcodebucket","eventcount"};
     }


Reply via email to