updating deprecation information on methods using int for hibernare result count...
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Wed, 13 Jun 2018 15:39:46 +0000 (17:39 +0200)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Wed, 13 Jun 2018 16:06:37 +0000 (18:06 +0200)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentificationKeyServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/PolytomousKeyServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/pager/impl/AbstractPagerImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/pager/impl/DefaultPagerImpl.java

index 34ce5e20c184dfa5edcf9e08da3dcb6383634123..b3bfe1d888b56fa0b18dc70fc5852742e26517c2 100644 (file)
@@ -521,7 +521,7 @@ public class DescriptionServiceImpl
             descriptionElements = new ArrayList<T>(0);
         }
         if (logger.isDebugEnabled()){logger.debug(" service - DONE ...");}
-        return new DefaultPagerImpl<T>(pageNumber, count.intValue(), pageSize, descriptionElements);
+        return new DefaultPagerImpl<T>(pageNumber, count, pageSize, descriptionElements);
     }
 
 
index fef7761c7259b0466b82e4c02adb0910f489329c..1c5b5f39cf0f65df864364ebfe76791cbb6b3b76 100644 (file)
@@ -49,7 +49,7 @@ public class IdentificationKeyServiceImpl implements IIdentificationKeyService {
         if(AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)){\r
             results = dao.findByTaxonomicScope(taxon.getUuid(), type, pageSize, pageNumber, propertyPaths);\r
         }\r
-        return new DefaultPagerImpl<T>(pageNumber, numberOfResults.intValue(), pageSize, results);\r
+        return new DefaultPagerImpl<T>(pageNumber, numberOfResults, pageSize, results);\r
     }\r
 \r
 }\r
index 2fb667f125cd029ed1ff365811600eb2e4e21f07..254ad645cd6c379f2cf07f0c8275eea04876c570 100644 (file)
@@ -131,7 +131,7 @@ public class PolytomousKeyServiceImpl extends IdentifiableServiceBase<Polytomous
                                dao.loadNodes(polytomousKey.getRoot(), nodePaths);\r
                        }\r
                }\r
-               Pager<PolytomousKey> pager = new DefaultPagerImpl<PolytomousKey>(pageNumber, numberOfResults.intValue(), pageSize, list);\r
+               Pager<PolytomousKey> pager = new DefaultPagerImpl<PolytomousKey>(pageNumber, numberOfResults, pageSize, list);\r
 \r
                return pager;\r
        }\r
index 31a9b14d85010a4d65e2fa814e23dea2b5dc8101..a14557fd91ef03a603f5f023f1ebad0c4836f6c0 100644 (file)
@@ -270,17 +270,15 @@ public abstract class AbstractPagerImpl<T> implements Pager<T>, Serializable {
         * When using this method in a service layer class you will also need to provide the according <code>limit</code> and <code>start</code>\r
         * parameters for dao list methods. The PagerUtil class provides the according methods for the required calculation:\r
         * {@link PagerUtils#limitFor(Integer)} and {@link PagerUtils#startFor(Integer, Integer)}.<br/>\r
-     * <b>NOTE:</b> It is highly recommended to use the {@link #limitStartforRange(Long, Integer, Integer)} method instead which already\r
-     * includes the calculation of <code>limit</code> and <code>start</code>.\r
+     * <b>NOTE:</b> To calculate <code>limit</code> and <code>start</code> for dao methods is highly recommended to use\r
+     * the {@link #limitStartforRange(Long, Integer, Integer)} method instead which already includes the calculation of\r
+     * <code>limit</code> and <code>start</code>.\r
         *\r
         * @param numberOfResults\r
         * @param pageIndex\r
         * @param pageSize\r
         * @return\r
-        *\r
-        * @deprecated use {@link #limitStartforRange(Long, Integer, Integer)} instead if appropriate.\r
         */\r
-       @Deprecated\r
        public static boolean hasResultsInRange(Long numberOfResults, Integer pageIndex, Integer pageSize) {\r
                return numberOfResults > 0 // no results at all\r
                                && (pageSize == null // page size may be null : return all in this case\r
@@ -289,6 +287,31 @@ public abstract class AbstractPagerImpl<T> implements Pager<T>, Serializable {
 \r
        /**\r
      * Test if the the <code>numberOfResults</code> in the range of the page specified by <code>pageIndex</code> and <code>pageSize</code>.\r
+     * <p>\r
+     * When using this method in a service layer class you will also need to provide the according <code>limit</code> and <code>start</code>\r
+     * parameters for dao list methods. The PagerUtil class provides the according methods for the required calculation:\r
+     * {@link PagerUtils#limitFor(Integer)} and {@link PagerUtils#startFor(Integer, Integer)}.<br/>\r
+     * <b>NOTE:</b> To calculate <code>limit</code> and <code>start</code> for dao methods is highly recommended to use\r
+     * the {@link #limitStartforRange(Long, Integer, Integer)} method instead which already includes the calculation of\r
+     * <code>limit</code> and <code>start</code>.\r
+     *\r
+     * @param numberOfResults\r
+     * @param pageIndex\r
+     * @param pageSize\r
+     * @return\r
+     *\r
+     * @deprecated The Hibernate <code>count</code> function returns <code>Long</code> values!\r
+     *  Use {@link #hasResultsInRange(Long, Integer, Integer)} instead.\r
+     */\r
+    @Deprecated\r
+    public static boolean hasResultsInRange(Integer numberOfResults, Integer pageIndex, Integer pageSize) {\r
+        return numberOfResults > 0 // no results at all\r
+                && (pageSize == null // page size may be null : return all in this case\r
+                || pageIndex != null && numberOfResults > (pageIndex * pageSize));\r
+    }\r
+\r
+       /**\r
+     * Test if the the <code>numberOfResults</code> in the range of the page specified by <code>pageIndex</code> and <code>pageSize</code>.\r
      * And returns the according <code>limit</code> and <code>start</code> values as an array in case the test is successful. If there is no\r
      * result in the specified range the return value will be <code>null</code>.\r
      * <p>\r
@@ -301,6 +324,7 @@ public abstract class AbstractPagerImpl<T> implements Pager<T>, Serializable {
      * @param pageSize\r
      * @return An <code>Integer</code> array containing limit and start: <code>new int[]{limit, start}</code> or null if there is no result in the range of\r
      *  <code>pageIndex</code> and <code>pageSize</code>.\r
+     *\r
      */\r
     public static Integer[] limitStartforRange(Long numberOfResults, Integer pageIndex, Integer pageSize) {\r
         if(hasResultsInRange(numberOfResults, pageIndex, pageSize)){\r
@@ -309,4 +333,29 @@ public abstract class AbstractPagerImpl<T> implements Pager<T>, Serializable {
         return null;\r
     }\r
 \r
+    /**\r
+     * Test if the the <code>numberOfResults</code> in the range of the page specified by <code>pageIndex</code> and <code>pageSize</code>.\r
+     * And returns the according <code>limit</code> and <code>start</code> values as an array in case the test is successful. If there is no\r
+     * result in the specified range the return value will be <code>null</code>.\r
+     * <p>\r
+     * When using this method in a service layer class you will also need to provide the according <code>limit</code> and <code>start</code>\r
+     * parameters for dao list methods. The PagerUtil class provides the according methods for the required calculation:\r
+     * {@link PagerUtils#limitFor(Integer)} and {@link PagerUtils#startFor(Integer, Integer)}\r
+     *\r
+     * @param numberOfResults\r
+     * @param pageIndex\r
+     * @param pageSize\r
+     * @return An <code>Integer</code> array containing limit and start: <code>new int[]{limit, start}</code> or null if there is no result in the range of\r
+     *  <code>pageIndex</code> and <code>pageSize</code>.\r
+     *\r
+     * @deprecated The Hibernate <code>count</code> function returns <code>Long</code> values! Use {@link #limitStartforRange(Long, Integer, Integer)} instead.\r
+     */\r
+    @Deprecated\r
+    public static Integer[] limitStartforRange(Integer numberOfResults, Integer pageIndex, Integer pageSize) {\r
+        if(hasResultsInRange(new Long(numberOfResults), pageIndex, pageSize)){\r
+            return  new Integer[]{PagerUtils.limitFor(pageSize), PagerUtils.startFor(pageSize, pageIndex)};\r
+        }\r
+        return null;\r
+    }\r
+\r
 }
index e60004d79983a4445792f1854a009e0bace4e9f3..e7991d495d2ea1cdf4c2c525f80a6f7ce8430c72 100644 (file)
@@ -23,7 +23,8 @@ public class DefaultPagerImpl<T> extends AbstractPagerImpl<T> {
      * @param pageSize The size of pages (can be null or 0 if all results should be returned if available)
      * @param records A list of objects in this page (can be empty if there were no results)
      *
-     * @deprecated This constructor only supports total result counts to {@link Integer#MAX_VALUE} u
+     * @deprecated The Hibernate <code>count</code> function returns <code>Long</code> values!
+     * This constructor only supports total result counts to {@link Integer#MAX_VALUE} u
      * use {@link DefaultPagerImpl(Integer currentIndex, Long count, Integer pageSize, List<T> records, String suggestion)}
      * instead
      */