From 2dba0094a1e8bcd14549469ed1773ab059999041 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Wed, 12 Oct 2011 11:36:59 +0000 Subject: [PATCH] ALF-10429 Refactor the common new webscript code for building a PagingRequest object git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31159 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../calendar/AbstractCalendarWebScript.java | 6 ++-- .../AbstractDiscussionWebScript.java | 34 ++----------------- .../scripts/links/AbstractLinksWebScript.java | 22 ++---------- .../scripts/wiki/AbstractWikiWebScript.java | 34 ++----------------- 4 files changed, 9 insertions(+), 87 deletions(-) diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java index 161a44e492..54b8e3551a 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java @@ -41,6 +41,7 @@ import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.namespace.QName; import org.alfresco.util.GUID; import org.alfresco.util.ISO8601DateFormat; +import org.alfresco.util.ScriptPagingDetails; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONException; @@ -279,10 +280,7 @@ public abstract class AbstractCalendarWebScript extends DeclarativeWebScript */ protected PagingRequest buildPagingRequest(WebScriptRequest req) { - // TODO Check the request for standard paging options - PagingRequest paging = new PagingRequest(MAX_QUERY_ENTRY_COUNT); - paging.setRequestTotalCountMax(MAX_QUERY_ENTRY_COUNT); - return paging; + return new ScriptPagingDetails(req, MAX_QUERY_ENTRY_COUNT); } /** diff --git a/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java b/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java index 2322de83a4..3fd1df6f2a 100644 --- a/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java @@ -43,6 +43,7 @@ import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.util.Pair; +import org.alfresco.util.ScriptPagingDetails; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.simple.JSONArray; @@ -131,38 +132,7 @@ public abstract class AbstractDiscussionWebScript extends DeclarativeWebScript */ protected PagingRequest buildPagingRequest(WebScriptRequest req) { - int pageSize = MAX_QUERY_ENTRY_COUNT; - int startIndex = 0; - - String pageSizeS = req.getParameter("pageSize"); - if (pageSizeS != null) - { - try - { - pageSize = Integer.parseInt(pageSizeS); - } - catch (NumberFormatException e) - { - throw new WebScriptException(Status.STATUS_BAD_REQUEST, "Paging size parameters invalid"); - } - } - - String startIndexS = req.getParameter("startIndex"); - if (startIndexS != null) - { - try - { - startIndex = Integer.parseInt(startIndexS); - } - catch (NumberFormatException e) - { - throw new WebScriptException(Status.STATUS_BAD_REQUEST, "Paging size parameters invalid"); - } - } - - PagingRequest paging = new PagingRequest( startIndex, pageSize ); - paging.setRequestTotalCountMax( Math.max(10*pageSize,startIndex+2*pageSize) ); - return paging; + return new ScriptPagingDetails(req, MAX_QUERY_ENTRY_COUNT); } protected List getTags(JSONObject json) diff --git a/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java b/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java index 9e83d7656c..fa56c382f0 100644 --- a/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/links/AbstractLinksWebScript.java @@ -35,6 +35,7 @@ import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; +import org.alfresco.util.ScriptPagingDetails; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.simple.JSONArray; @@ -145,28 +146,11 @@ public abstract class AbstractLinksWebScript extends DeclarativeWebScript */ protected PagingRequest buildPagingRequest(WebScriptRequest req) { - String pageNumberS = req.getParameter("page"); - String pageSizeS = req.getParameter("pageSize"); - if (pageNumberS == null || pageSizeS == null) + if (req.getParameter("page") == null || req.getParameter("pageSize") == null) { throw new WebScriptException(Status.STATUS_BAD_REQUEST, "Paging size parameters missing"); } - - int pageNumber; - int pageSize; - try - { - pageNumber = Integer.parseInt(pageNumberS); - pageSize = Integer.parseInt(pageSizeS); - } - catch (NumberFormatException e) - { - throw new WebScriptException(Status.STATUS_BAD_REQUEST, "Paging size parameters invalid"); - } - - PagingRequest paging = new PagingRequest( (pageNumber-1) * pageSize, pageSize ); - paging.setRequestTotalCountMax( Math.max(10, pageNumber) * pageSize ); - return paging; + return new ScriptPagingDetails(req, 100); } /** diff --git a/source/java/org/alfresco/repo/web/scripts/wiki/AbstractWikiWebScript.java b/source/java/org/alfresco/repo/web/scripts/wiki/AbstractWikiWebScript.java index 4ef27194fc..3b6ea4e10c 100644 --- a/source/java/org/alfresco/repo/web/scripts/wiki/AbstractWikiWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/wiki/AbstractWikiWebScript.java @@ -33,6 +33,7 @@ import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.wiki.WikiPageInfo; import org.alfresco.service.cmr.wiki.WikiService; +import org.alfresco.util.ScriptPagingDetails; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.simple.JSONObject; @@ -108,38 +109,7 @@ public abstract class AbstractWikiWebScript extends DeclarativeWebScript */ protected PagingRequest buildPagingRequest(WebScriptRequest req) { - int pageSize = MAX_QUERY_ENTRY_COUNT; - int pageNumber = 1; - - String pageSizeS = req.getParameter("pageSize"); - if (pageSizeS != null) - { - try - { - pageSize = Integer.parseInt(pageSizeS); - } - catch (NumberFormatException e) - { - throw new WebScriptException(Status.STATUS_BAD_REQUEST, "Paging size parameters invalid"); - } - } - - String pageNumberS = req.getParameter("page"); - if (pageNumberS != null) - { - try - { - pageNumber = Integer.parseInt(pageNumberS); - } - catch (NumberFormatException e) - { - throw new WebScriptException(Status.STATUS_BAD_REQUEST, "Paging size parameters invalid"); - } - } - - PagingRequest paging = new PagingRequest( (pageNumber-1) * pageSize, pageSize ); - paging.setRequestTotalCountMax( Math.max(10, pageNumber) * pageSize ); - return paging; + return new ScriptPagingDetails(req, MAX_QUERY_ENTRY_COUNT); } /**