Author: ssmiweve
Date: 2009-09-17 10:46:06 +0200 (Thu, 17 Sep 2009)
New Revision: 7283

Modified:
   
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
   
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
   
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
Log:
 Facet values (facets selected by the user) can be multi-valued using the 
specificated separator.
 A blank string will disable any ability to select multiple facet values.
 The default separator is "," unless sepcified by implementation.

API Breakage: This breaks non-abstract implementations of FacetedCommandConfig
        ((this was only very recently introduced in the 2.18 branch))


Modified: 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
  2009-09-15 08:24:57 UTC (rev 7282)
+++ 
branches/2.18/generic.sesam/search-command-config/src/main/java/no/sesat/search/mode/config/SolrCommandConfig.java
  2009-09-17 08:46:06 UTC (rev 7283)
@@ -54,6 +54,8 @@
 
     private String queryType = null;
 
+    private String facetSeperator = ",";
+
     // Static --------------------------------------------------------
 
     // Constructors --------------------------------------------------
@@ -189,6 +191,15 @@
     }
 
     @Override
+    public String getFacetSeparator(){
+        return facetSeperator;
+    }
+
+    public void setFacetSeparator(final String facetSeperator){
+        this.facetSeperator = facetSeperator;
+    }
+
+    @Override
     public SearchConfiguration readSearchConfiguration(
             final Element element,
             final SearchConfiguration inherit,

Modified: 
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
===================================================================
--- 
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
       2009-09-15 08:24:57 UTC (rev 7282)
+++ 
branches/2.18/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/SolrSimpleFacetToolkitImpl.java
       2009-09-17 08:46:06 UTC (rev 7283)
@@ -40,6 +40,7 @@
 
     // Public --------------------------------------------------------
 
+    @Override
     public void createFacets(final SearchCommand.Context context, final 
SolrQuery query) {
 
         final Map<String, Navigator> facets = 
getSearchConfiguration(context).getFacets();
@@ -51,6 +52,7 @@
         }
     }
 
+    @Override
     public void collectFacets(
             final SearchCommand.Context context,
             final QueryResponse response,
@@ -76,9 +78,14 @@
         final StringDataObject facetValue = 
context.getDataModel().getParameters().getValue(facet.getId());
 
         if (null != facetValue) {
+
             // splitting here allows for multiple navigation selections within 
the one navigation level.
-            for (String navSingleValue : facetValue.getString().split(",")) {
+            final String[] arr = 
getSearchConfiguration(context).getFacetSeparator().isEmpty()
+                    ? new String[]{facetValue.getString()}
+                    : 
facetValue.getString().split(getSearchConfiguration(context).getFacetSeparator());
 
+            for (String navSingleValue : arr) {
+
                 final String value = facet.isBoundaryMatch()
                         ? "^\"" + navSingleValue + "\"$"
                         : "\"" + navSingleValue + "\"";

Modified: 
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
===================================================================
--- 
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
 2009-09-15 08:24:57 UTC (rev 7282)
+++ 
branches/2.18/search-command-config-spi/src/main/java/no/sesat/search/mode/config/FacetedCommandConfig.java
 2009-09-17 08:46:06 UTC (rev 7283)
@@ -40,4 +40,12 @@
      * @return
      */
     Map<String, Navigator> getFacets();
+
+    /** Facet values (facets selected by the user) can be multi-valued using 
the specificated separator.
+     * A blank string will disable any ability to select multiple facet values.
+     *
+     * The default separator is "," unless sepcified by implementation.
+     * @return
+     */
+    String getFacetSeparator();
 }

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

Reply via email to