All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinitenature.commons.pagination.impl.PageRequestImpl Maven / Gradle / Ivy

There is a newer version: 0.0.7
Show newest version
package org.infinitenature.commons.pagination.impl;

import org.infinitenature.commons.pagination.PageRequest;
import org.infinitenature.commons.pagination.SortOrder;

import net.vergien.beanautoutils.annotation.Bean;

@Bean
public class PageRequestImpl extends OffsetRequestImpl implements PageRequest
{
   private final int page;
   private final int pageSize;

   /**
    * 
    * @param page
    *           One based index of the requested PageImpl
    * @param pageSize
    * @param sortField
    * @param sortOrder
    */
   public PageRequestImpl(int page, int pageSize, String sortField,
         SortOrder sortOrder)
   {
      super((page - 1) * pageSize, pageSize, sortOrder, sortField);
      this.page = page;
      this.pageSize = pageSize;
   }

   public PageRequestImpl(int page, int pageSize)
   {
      this(page, pageSize, null, null);
   }

   /*
    * (non-Javadoc)
    * 
    * @see org.infinitenature.commons.pagination.impl.PageRequest#getPage()
    */
   @Override
   public int getPage()
   {
      return page;
   }

   /*
    * (non-Javadoc)
    * 
    * @see org.infinitenature.commons.pagination.impl.PageRequest#getPageSize()
    */
   @Override
   public int getPageSize()
   {
      return pageSize;
   }

   /*
    * (non-Javadoc)
    * 
    * @see org.infinitenature.commons.pagination.impl.PageRequest#previous()
    */
   @Override
   public PageRequest previous()
   {
      return getPage() == 1 ? this
            : new PageRequestImpl(getPage() - 1, getPageSize(), getSortField(),
                  getSortOrder());
   }

   /*
    * (non-Javadoc)
    * 
    * @see org.infinitenature.commons.pagination.impl.PageRequest#next()
    */
   @Override
   public PageRequest next()
   {
      return new PageRequestImpl(getPage() + 1, getPageSize(), getSortField(),
            getSortOrder());
   }

   @Override
   public int hashCode()
   {
      return PageRequestImplBeanUtil.doToHashCode(this);
   }

   @Override
   public boolean equals(Object obj)
   {
      return PageRequestImplBeanUtil.doEquals(this, obj);
   }

   @Override
   public String toString()
   {
      return PageRequestImplBeanUtil.doToString(this);
   }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy