Author: ssmiweve
Date: 2008-03-03 11:39:36 +0100 (Mon, 03 Mar 2008)
New Revision: 6203

Modified:
   
branches/2.16.0/core-api/src/main/java/no/sesat/search/util/SearchConstants.java
   
branches/2.16.0/core-api/src/test/java/no/sesat/search/mode/command/AllSearchCommandsTest.java
   
branches/2.16.0/generic.sesam/result-handler-config/src/main/java/no/sesat/search/result/handler/ClusterOffsetAdapterResultHandlerConfig.java
   
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/PicSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooIdpSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooMediaSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/BlendingNewsSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/MobileSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsEspSearchCommand.java
   
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsMyNewsSearchCommand.java
   
branches/2.16.0/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/NewsMyNewsQueryTransformer.java
   
branches/2.16.0/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
   
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
   
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/SearchCommand.java
   
branches/2.16.0/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
   
branches/2.16.0/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
   
branches/2.16.0/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java
Log:
backport or r6198
svn merge -c6198 http://sesat.no/svn/sesat-kernel/branches/2.16


Modified: 
branches/2.16.0/core-api/src/main/java/no/sesat/search/util/SearchConstants.java
===================================================================
--- 
branches/2.16.0/core-api/src/main/java/no/sesat/search/util/SearchConstants.java
    2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/core-api/src/main/java/no/sesat/search/util/SearchConstants.java
    2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2005-2007) Schibsted Søk AS
+ * Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -56,7 +56,7 @@
 
     public static final String REQUEST_KEYPARAM_QUERY = "q";
     public static final String REQUEST_KEYPARAM_LANGUAGE = "lan";
-    public static final String REQUEST_KEYPARAM_OFFSET = "offset";
+
     public static final String REQUEST_KEYPARAM_DOCUMENTS_TO_RETURN = "d";
     public static final String REQUEST_KEYPARAM_COLLECTION = "c";
     public static final String REQUEST_PARAM_DEFAULT_COLLECTIONS = "d";
@@ -78,7 +78,6 @@
     
     public static final Object REQUEST_PARAM_PICTURE_SEARCH = "p";
 
-    public static final Object PARAMETER_OFFSET = "offset";
 
 }
 

Modified: 
branches/2.16.0/core-api/src/test/java/no/sesat/search/mode/command/AllSearchCommandsTest.java
===================================================================
--- 
branches/2.16.0/core-api/src/test/java/no/sesat/search/mode/command/AllSearchCommandsTest.java
      2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/core-api/src/test/java/no/sesat/search/mode/command/AllSearchCommandsTest.java
      2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2007) Schibsted Søk AS
+/* Copyright (2006-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -34,6 +34,7 @@
 import no.sesat.search.site.Site;
 import no.sesat.search.site.SiteContext;
 import no.sesat.search.site.config.BytecodeLoader;
+import no.sesat.search.view.navigation.ResultPagingNavigationConfig;
 import org.apache.log4j.Logger;
 import org.testng.annotations.Test;
 
@@ -172,8 +173,10 @@
             final RunningQuery.Context rqCxt){
         
         
-        if (map.get("offset") == null || "".equals(map.get("offset"))) {
-            map.put("offset", "0");
+        if (map.get(ResultPagingNavigationConfig.OFFSET_KEY) == null 
+                || 
"".equals(map.get(ResultPagingNavigationConfig.OFFSET_KEY))) {
+            
+            map.put(ResultPagingNavigationConfig.OFFSET_KEY, "0");
         }
 
         map.put("contextPath", "/");

Modified: 
branches/2.16.0/generic.sesam/result-handler-config/src/main/java/no/sesat/search/result/handler/ClusterOffsetAdapterResultHandlerConfig.java
===================================================================
--- 
branches/2.16.0/generic.sesam/result-handler-config/src/main/java/no/sesat/search/result/handler/ClusterOffsetAdapterResultHandlerConfig.java
       2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/result-handler-config/src/main/java/no/sesat/search/result/handler/ClusterOffsetAdapterResultHandlerConfig.java
       2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2007) Schibsted Søk AS
+/* Copyright (2007-2008) Schibsted Søk AS
  *   This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -17,6 +17,7 @@
 package no.sesat.search.result.handler;
 
 import no.sesat.search.result.handler.AbstractResultHandlerConfig.Controller;
+import no.sesat.search.view.navigation.ResultPagingNavigationConfig;
 import org.apache.log4j.Logger;
 import org.w3c.dom.Element;
 
@@ -27,7 +28,7 @@
 @Controller("ClusterOffsetAdapter")
 public class ClusterOffsetAdapterResultHandlerConfig extends 
AbstractResultHandlerConfig {
     private static final Logger LOG = 
Logger.getLogger(ClusterOffsetAdapterResultHandlerConfig.class);
-    private String offsetField = "offset";
+    private String offsetField = ResultPagingNavigationConfig.OFFSET_KEY;
     private String offsetResultField = "nextOffset";
     private int offsetInterval = 20;
 

Modified: 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/PicSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/PicSearchCommand.java
       2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/PicSearchCommand.java
       2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2007) Schibsted Søk AS
+/* Copyright (2006-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -96,7 +96,7 @@
                     cfg.getCustomerId(),
                     cfg.getResultsToReturn(),
                     query,
-                    getCurrentOffset(1),
+                    getOffset()+1,
                     siteFilter);
 
             DUMP.info("Using " + url);

Modified: 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooIdpSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooIdpSearchCommand.java
  2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooIdpSearchCommand.java
  2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2006-2007) Schibsted Søk AS
+ * Copyright (2006-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -199,7 +199,7 @@
                     getPartnerId(),
                     conf.getDatabase(),
                     URLEncoder.encode(conf.getDateRange().length() >0 ? 
conf.getDateRange() : dateRange , "UTF-8"),
-                    getParameter("offset"),
+                    getOffset(),
                     conf.getResultsToReturn(),
                     (0 < conf.getRegion().length() ? "Region=" + 
conf.getRegion() + '&' : ""),
                     conf.getRegionMix(),

Modified: 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooMediaSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooMediaSearchCommand.java
        2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/default/src/main/java/no/sesat/search/mode/command/YahooMediaSearchCommand.java
        2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2007) Schibsted Søk AS
+/* Copyright (2007-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -127,7 +127,7 @@
             String url = MessageFormat.format(
                     COMMAND_URL_PATTERN,
                     URLEncoder.encode(query, URL_ENCODING),
-                    getCurrentOffset(0),
+                    getOffset(),
                     getPartnerId(),
                     cfg.getResultsToReturn(),
                     ocr,

Modified: 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
      2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractESPFastSearchCommand.java
      2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2005-2007) Schibsted Søk AS
+/* Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -183,7 +183,7 @@
             query.setParameter(new SearchParameter("sesat:uniqueId",
                     context.getDataModel().getParameters().getUniqueId()));
 
-            query.setParameter(new SearchParameter(BaseParameter.OFFSET, 
getCurrentOffset(0)));
+            query.setParameter(new SearchParameter(BaseParameter.OFFSET, 
getOffset()));
             query.setParameter(new SearchParameter(BaseParameter.HITS, 
cfg.getResultsToReturn()));
             query.setParameter(new SearchParameter(BaseParameter.SORT_BY, 
sortBy));
             query.setParameter(new SearchParameter(BaseParameter.LEMMATIZE, 
cfg.isLemmatize()));            
@@ -306,7 +306,7 @@
     protected FastSearchResult<ResultItem> createSearchResult(final 
IQueryResult result) throws IOException {
 
         final FastSearchResult<ResultItem> searchResult = new 
FastSearchResult<ResultItem>();
-        final int cnt = getCurrentOffset(0);
+        final int cnt = getOffset();
         final int maxIndex = getMaxDocIndex(result, cnt, cfg);
 
         searchResult.setHitCount(result.getDocCount());

Modified: 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
   2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/AbstractSimpleFastSearchCommand.java
   2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2005-2007) Schibsted Søk AS
+/* Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -486,7 +486,7 @@
         }
 
         final FastSearchResult<ResultItem> searchResult = new 
FastSearchResult<ResultItem>();
-        final int cnt = getCurrentOffset(0);
+        final int cnt = getOffset();
 
         final int maxIndex = Math.min(cnt + getResultsToReturn(), 
result.getDocCount());
 

Modified: 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/BlendingNewsSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/BlendingNewsSearchCommand.java
 2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/BlendingNewsSearchCommand.java
 2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2007) Schibsted Søk AS
+/* Copyright (2007-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -103,16 +103,9 @@
         this.additionalFilter = filter;
     }
 
-    /**
-     * Returns the offset in the result set. If paging is enabled for the
-     * current search configuration the offset to the current page will be
-     * added to the parameter.
-     *
-     * @param i the current offset.
-     * @return i plus the offset of the current page.
-     */
-    protected int getCurrentOffset(final int i) {
-        return Integer.parseInt(getParameter("offset")) / 
cfg.getFiltersToBlend().size();
+
+    protected int getOffset(){
+        return super.getOffset() / cfg.getFiltersToBlend().size();
     }
 
     protected int getResultsToReturn() {

Modified: 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/MobileSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/MobileSearchCommand.java
       2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/MobileSearchCommand.java
       2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2007) Schibsted Søk AS
+/* Copyright (2006-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -93,7 +93,7 @@
             params.setParameter(new SearchParameter(
                     BaseParameter.QUERY, getTransformedQuery()));
             params.setParameter(new SearchParameter(
-                    "offset", getCurrentOffset(0)));
+                    "offset", getOffset())); // BaseParameter.OFFSET not in 
Fast4
 
             if (getParameter("msite") != null)  {
                 String filter = "+(";
@@ -148,7 +148,7 @@
 
             if( null != result ){
 
-                final int cnt = getCurrentOffset(0);
+                final int cnt = getOffset();
                 final int maxIndex = Math.min(cnt + cfg.getResultsToReturn(), 
result.getDocCount());
 
                 searchResult.setHitCount(result.getDocCount());

Modified: 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsEspSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsEspSearchCommand.java
      2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsEspSearchCommand.java
      2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2007) Schibsted Søk AS
+/* Copyright (2007-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -165,18 +165,6 @@
         return super.createSearchResult(result);
     }
 
-    /** Get the offset.
-     * @return
-     */
-    protected int getOffset() {
-
-        int offset = 0;
-        if (datamodel.getJunkYard().getValue("offset") != null) {
-            offset = Integer.parseInt((String) 
datamodel.getJunkYard().getValue("offset"));
-        }
-        return offset;
-    }
-
     private void addMedium(final Clause clause) {
 
         if (getQuery().getRootClause() == clause) {

Modified: 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsMyNewsSearchCommand.java
===================================================================
--- 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsMyNewsSearchCommand.java
   2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/generic.sesam/search-command-control/fast/src/main/java/no/sesat/search/mode/command/NewsMyNewsSearchCommand.java
   2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2007) Schibsted Søk AS
+/* Copyright (2007-2008) Schibsted Søk AS
  *   This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -145,14 +145,6 @@
         }
     }
 
-    private int getOffset() {
-        int offset = 0;
-        if (datamodel.getJunkYard().getValue("offset") != null) {
-            offset = Integer.parseInt((String) 
datamodel.getJunkYard().getValue("offset"));
-        }
-        return offset;
-    }
-
     @Override
     public NewsMyNewsCommandConfig getSearchConfiguration() {
         return (NewsMyNewsCommandConfig) super.getSearchConfiguration();

Modified: 
branches/2.16.0/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/NewsMyNewsQueryTransformer.java
===================================================================
--- 
branches/2.16.0/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/NewsMyNewsQueryTransformer.java
   2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/query-transform-control-spi/src/main/java/no/sesat/search/query/transform/NewsMyNewsQueryTransformer.java
   2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2007) Schibsted Søk AS
+/* Copyright (2007-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -21,6 +21,8 @@
 
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import no.sesat.search.datamodel.generic.StringDataObject;
+import no.sesat.search.view.navigation.ResultPagingNavigationConfig;
 
 
 /**
@@ -80,9 +82,16 @@
      */
     protected int getOffset() {
 
-        return null != 
getContext().getDataModel().getJunkYard().getValue("offset")
-                ? Integer.parseInt((String) 
getContext().getDataModel().getJunkYard().getValue("offset"))
-                : 0;
+        int offset = 0;
+        
+        final StringDataObject offsetString 
+                = 
getContext().getDataModel().getParameters().getValue(ResultPagingNavigationConfig.OFFSET_KEY);
+        
+        if( null != offsetString ){
+            offset = Integer.parseInt(offsetString.getUtf8UrlEncoded());
+        }
+
+        return offset;
     }
 
     private String transformQuery(final String myNews) {

Modified: 
branches/2.16.0/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
===================================================================
--- 
branches/2.16.0/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
        2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
        2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2005-2007) Schibsted Søk AS
+ * Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -27,7 +27,8 @@
 import no.sesat.search.mode.SearchModeFactory.Context;
 import org.w3c.dom.Element;
 
-/**
+/** Minimum behavior defined for any SearchConfiguration implementation.
+ * 
  * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
  * @version <tt>$Id$</tt>
  */
@@ -48,7 +49,7 @@
     void addQueryTransformer(QueryTransformerConfig transformer);
 
     /**
-     * Returns a list of [EMAIL PROTECTED] 
no.sesat.search.result.handler.ResultHandlerConfig} that should act on the 
search
+     * Returns a (defensive copy) list of [EMAIL PROTECTED] 
no.sesat.search.result.handler.ResultHandlerConfig} that should act on the 
search
      * result.
      *
      * @return The list of handlers.
@@ -98,7 +99,7 @@
 
     /**
      * Sets the number of results to return. This is typically set to the
-     * page size.
+     * page size defined in the view.xml.
      *
      * @param numberOfResults
      */

Modified: 
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
===================================================================
--- 
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
    2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
    2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2007) Schibsted Søk AS
+/* Copyright (2006-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -62,6 +62,7 @@
 import no.sesat.search.site.SiteContext;
 import no.sesat.search.site.config.BytecodeLoader;
 import no.sesat.search.view.config.SearchTab;
+import static 
no.sesat.search.view.navigation.ResultPagingNavigationConfig.OFFSET_KEY;
 import org.apache.commons.lang.time.StopWatch;
 import org.apache.log4j.Logger;
 import org.apache.log4j.MDC;
@@ -70,6 +71,7 @@
 import java.util.List;
 import java.util.Map;
 import no.sesat.search.datamodel.access.DataModelAccessException;
+import no.sesat.search.view.navigation.NavigationConfig.Nav;
 
 /** The base abstraction for Search Commands providing a large framework for 
commands to run against.
  *                                                                             
                             <br/><br/>
@@ -569,25 +571,40 @@
      *
      * @param i the current offset.
      * @return i plus the offset of the current page.
+     * 
+     * @deprecated instead use getOffset() + i
      */
     protected int getCurrentOffset(final int i) {
 
-        final Map<String, Object> parameters = 
datamodel.getJunkYard().getValues();
-        final Object v = parameters.get("offset");
-
-        if (null != v && getSearchConfiguration().isPaging()) {
-            return i + Integer.parseInt(v instanceof String[] && ((String[]) 
v).length == 1
-                    ? ((String[]) v)[0]
-                    : (String) v);
-        } else {
-            return i;
+        return i + getOffset();
+    }
+    
+    /**
+     * Returns the offset applicable to this command.
+     * Zero if the command has no "offset" navigator configured,
+     *  the value of the offset parameter otherwise.
+     *
+     * @return i plus the offset of the current page.
+     */    
+    protected int getOffset(){
+        
+        int offset = 0;
+        final Nav offsetNav = 
context.getDataModel().getNavigation().getConfiguration().getNavMap().get(OFFSET_KEY);
+        
+        if(null != offsetNav && 
getSearchConfiguration().getName().equals(offsetNav.getCommandName())){
+            final StringDataObject offsetString = 
context.getDataModel().getParameters().getValue(OFFSET_KEY);
+            if( null != offsetString ){
+                offset = Integer.parseInt(offsetString.getUtf8UrlEncoded());
+            }
         }
+        return offset;
     }
 
     /**
-     * TODO comment me. *
+     * TODO comment me.
      *
      * @return
+     * @deprecated because it uses the junkyard
      */
     protected Map<String, Object> getParameters() {
 
@@ -601,6 +618,8 @@
      * the empty string is returned.
      *
      * @param paramName
+     * 
+     * @deprecated because it uses the junkyard
      */
     protected String getParameter(final String paramName) {
 

Modified: 
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/SearchCommand.java
===================================================================
--- 
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/SearchCommand.java
    2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/search-command-control-spi/src/main/java/no/sesat/search/mode/command/SearchCommand.java
    2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,5 +1,5 @@
 /*
-* Copyright (2005-2007) Schibsted Søk AS
+* Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -28,7 +28,7 @@
 import no.sesat.search.result.ResultItem;
 import no.sesat.search.result.ResultList;
 
-/** Behavour requirements for any implementation Search Command.
+/** Behavour requirements for any implementating Search Command.
  *
  * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
  * @version <tt>$Id$</tt>

Modified: 
branches/2.16.0/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
===================================================================
--- 
branches/2.16.0/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
     2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
     2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2005-2007) Schibsted Søk AS
+/* Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -25,9 +25,13 @@
 
 /**
  * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a>
+ * @version $Id$
  */
 
@ControllerFactory("no.sesat.search.view.navigation.ResultPagingNavigationController")
 public final class ResultPagingNavigationConfig extends NavigationConfig.Nav {
+    
+    /** Used for both the id of the configuration AND the parameter name. **/
+    public static final String OFFSET_KEY = "offset";
 
     private int pageSize;
     private int numberOfPages;


Property changes on: 
branches/2.16.0/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: 
branches/2.16.0/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
===================================================================
--- 
branches/2.16.0/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
        2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
        2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,4 +1,4 @@
-/* Copyright (2005-2007) Schibsted Søk AS
+/* Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -25,6 +25,7 @@
 import no.sesat.search.result.ResultItem;
 import no.sesat.search.result.ResultList;
 import no.sesat.search.site.config.TextMessages;
+import static 
no.sesat.search.view.navigation.ResultPagingNavigationConfig.OFFSET_KEY;
 import org.apache.log4j.Logger;
 
 
@@ -72,7 +73,7 @@
             }else {
                 hitCount = searchResult.getHitCount();
             }
-            final StringDataObject offsetString = 
context.getDataModel().getParameters().getValue("offset");
+            final StringDataObject offsetString = 
context.getDataModel().getParameters().getValue(OFFSET_KEY);
             final int offset = offsetString == null ? 0 : 
Integer.parseInt(offsetString.getUtf8UrlEncoded());
 
             item = new BasicNavigationItem();

Modified: 
branches/2.16.0/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java
===================================================================
--- 
branches/2.16.0/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java
   2008-03-03 08:39:17 UTC (rev 6202)
+++ 
branches/2.16.0/war/src/main/java/no/sesat/search/http/servlet/SearchServlet.java
   2008-03-03 10:39:36 UTC (rev 6203)
@@ -1,5 +1,5 @@
 /*
- * Copyright (2005-2007) Schibsted Søk AS
+ * Copyright (2005-2008) Schibsted Søk AS
  * This file is part of SESAT.
  *
  *   SESAT is free software: you can redistribute it and/or modify
@@ -342,12 +342,7 @@
 
 
         final DataModel datamodel = (DataModel) 
request.getSession().getAttribute(DataModel.KEY);
-        final ParametersDataObject parametersDO = datamodel.getParameters();
 
-        if (null == parametersDO.getValue("offset") || 0 == 
parametersDO.getValue("offset").getString().length()) {
-            request.setAttribute("offset", "0"); // TODO remove, access 
through datamodel instead.
-        }
-
          // TODO remove next two, access through datamodel instead.
         request.setAttribute("text",TextMessages.valueOf(ContextWrapper.wrap(
                 TextMessages.Context.class,

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

Reply via email to