org.infinitenature.commons.pagination.impl.SliceImpl Maven / Gradle / Ivy
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);
}
}