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

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

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

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;

import org.infinitenature.commons.pagination.OffsetRequest;
import org.infinitenature.commons.pagination.Slice;
import org.infinitenature.commons.pagination.SortOrder;

import net.vergien.beanautoutils.annotation.Bean;

@Bean
public class SliceImpl implements Slice
{
   private List content = new ArrayList<>();
   private final OffsetRequest request;

   public SliceImpl(List content, OffsetRequest request)
   {
      super();
      this.content = content;
      this.request = request;
   }

   @Override
   public Iterator iterator()
   {
      return getContent().iterator();
   }

   @Override
   public List getContent()
   {
      return Collections.unmodifiableList(content);
   }

   @Override
   public boolean hasContent()
   {
      return !content.isEmpty();
   }

   @Override
   public int getSize()
   {
      return request.getCount();
   }

   @Override
   public int getNumberOfElements()
   {
      return content.size();
   }

   @Override
   public Optional getSortOrder()
   {
      return Optional.ofNullable(request.getSortOrder());
   }

   @Override
   public Optional getSortField()
   {
      return Optional.ofNullable(request.getSortField());
   }

   protected OffsetRequest getRequest()
   {
      return request;
   }

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy