Author: sshafroi
Date: 2008-04-01 12:42:22 +0200 (Tue, 01 Apr 2008)
New Revision: 6323

Modified:
   
branches/2.16/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/FastCommandConfig.java
   
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
Log:
SEARCH-4403 Implement setters for all configurable variables used in the search 
mode config files.

Added some missing setters.


Modified: 
branches/2.16/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/FastCommandConfig.java
===================================================================
--- 
branches/2.16/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/FastCommandConfig.java
  2008-03-31 16:21:45 UTC (rev 6322)
+++ 
branches/2.16/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/FastCommandConfig.java
  2008-04-01 10:42:22 UTC (rev 6323)
@@ -106,11 +106,13 @@
     }
 
     /**
-     *
-     * @param collectionName
+     * @param collectionArray
+     *            Add collections to this configuration.
      */
-    public void addCollection(final String collectionName) {
-        collections.add(collectionName);
+    public void addCollections(final String[] collectionArray) {
+        for (String string : collectionArray) {
+            collections.add(string);
+        }
     }
 
     /**
@@ -178,14 +180,16 @@
     }
 
     /**
-     *
-     * @param parameterName
-     * @param parameterValue
+     * @param parameters
+     *            Add search parameters
      */
-    public void setParameter(final String parameterName, final String 
parameterValue) {
-        searchParameters.put(parameterName, parameterValue);
+    public void setSearchParameters(final String[] parameters) {
+        for (String parameter : parameters) {
+            final String[] paramSplit = parameter.split("=");
+            searchParameters.put(paramSplit[0].trim(), paramSplit[1].trim());
+        }
     }
-
+    
     /**
      *
      * @return
@@ -531,24 +535,17 @@
 
         // collections
         if (element.getAttribute("collections").length() > 0) {
-            final String[] collections = 
element.getAttribute("collections").split(",");
-            for (String collection : collections) {
-                addCollection(collection);
-            }
+            addCollections(element.getAttribute("collections").split(","));
         }else if(null != fscInherit){
             collections.addAll(fscInherit.getCollections());
         }
-        
+
         // search parameters
         if(null != fscInherit){
             searchParameters.putAll(fscInherit.getSearchParameters());
         }
         if (element.getAttribute("search-parameters").length() > 0) {
-            final String[] parameters = 
element.getAttribute("search-parameters").split(",");
-            for (String parameter : parameters) {
-                final String[] paramSplit = parameter.split("=");
-                setParameter(paramSplit[0], paramSplit[1]);
-            }
+            
setSearchParameters(element.getAttribute("search-parameters").split(","));
         }
 
         AbstractDocumentFactory.fillBeanProperty(this, inherit, "filter", 
ParseType.String, element, "");

Modified: 
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
===================================================================
--- 
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
        2008-03-31 16:21:45 UTC (rev 6322)
+++ 
branches/2.16/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
        2008-04-01 10:42:22 UTC (rev 6323)
@@ -136,11 +136,38 @@
         this.name = name;
     }
 
+    /**
+     * Same as setName
+     *
+     * @param id Name for this configuration.
+     */
+    public final void setId(final String id) {
+        this.name = id;
+    }
+
     /** [EMAIL PROTECTED] **/
     public final void addResultField(final String... fieldName) {
         resultFields.put(fieldName[0].trim(), (fieldName.length >1 ? 
fieldName[1] : fieldName[0]).trim());
     }
 
+    /**
+     * @param resultField
+     *            String seperated with ' AS '.
+     */
+    private final void addResultField(final String resultField) {
+        addResultField(resultField.trim().split(" AS "));
+    }
+
+    /**
+     * @param resultFields
+     *            Result fields to add.
+     */
+    public final void addResultFields(final String[] resultFields) {
+        for (String string : resultFields) {
+            addResultField(string);
+        }
+    }
+
     /** [EMAIL PROTECTED] **/
     public final Map<String,String> getResultFields() {
         return Collections.unmodifiableMap(resultFields);
@@ -229,12 +256,27 @@
         return getClass().getSimpleName() + " [" + name + "]";
     }
 
+    /**
+     * @param fieldAndFilter
+     *            String containing name of field and filter seperated with ' 
AS '.
+     */
+    private void setFieldFilter(final String fieldAndFilter) {
+        String parsed[] = fieldAndFilter.trim().split(" AS ");
+        String field = parsed[0].trim();
+        fieldFilters.put(field, (parsed.length > 1) ? parsed[1].trim() : 
field);
+    }
 
     /**
-     * @param field 
+     * Syntax: field-filters="size, nyhetskilde AS newssource"
+     * 
+     * Just "size" will be the same as writing "size AS size" 
+     * 
+     * @param fieldFilters Array of field filters.
      */
-    public void addFieldFilter(final String field, final String filter){
-        fieldFilters.put(field, filter);
+    public void setFieldFilters(final String[] fieldFilters) {
+        for (String string : fieldFilters) {
+            setFieldFilter(string);
+        }
     }
 
     /**
@@ -279,15 +321,8 @@
         }
         if (element.hasAttribute("field-filters")) {
             if (element.getAttribute("field-filters").length() > 0) {
-                final String[] fieldFilters = 
element.getAttribute("field-filters").split(",");
-                for (String fieldFilter : fieldFilters) {
-                    if (fieldFilter.contains(" AS ")) {
-                        final String[] ff = fieldFilter.split(" AS ");
-                        addFieldFilter(ff[0].trim(), ff[1].trim());
-                    } else {
-                        addFieldFilter(fieldFilter, fieldFilter);
-                    }
-                }
+                
setFieldFilters(element.getAttribute("field-filters").split(","));
+
             } else {
                 // If attribute is present and empty, clear the field filters. 
This creates an option
                 // for child commands to not inherit field filters.
@@ -302,10 +337,7 @@
             resultFields.putAll(inherit.getResultFields());
         }
         if (element.getAttribute("result-fields").length() > 0) {
-            final String[] resultFields = 
element.getAttribute("result-fields").split(",");
-            for (String resultField : resultFields) {
-                addResultField(resultField.trim().split(" AS "));
-            }
+            addResultFields(element.getAttribute("result-fields").split(","));
         }
         
         AbstractDocumentFactory.fillBeanProperty(this, inherit, 
"resultsToReturn", ParseType.Int, element, "-1");

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to