package play.utils.dao;
import com.avaje.ebean.Page;
public abstract class PageAdapter<S, T> implements Page<T> {
protected Page<S> delegate;
public PageAdapter(Page<S> delegate) {
this.delegate = delegate;
}
/**
* created a new page adapter. used to create prev/next pages
* @param delegate page delegate
* @return a new page adapter
*/
public abstract PageAdapter<S, T> create(Page<S> delegate);
@Override
public int getTotalRowCount() {
return delegate.getTotalRowCount();
}
@Override
public int getTotalPageCount() {
return delegate.getTotalPageCount();
}
@Override
public int getPageIndex() {
return delegate.getPageIndex();
}
@Override
public boolean hasNext() {
return delegate.hasNext();
}
@Override
public boolean hasPrev() {
return delegate.hasPrev();
}
@Override
public Page<T> next() {
Page<S> p = delegate.next();
return create(p);
}
@Override
public Page<T> prev() {
Page<S> p = delegate.prev();
return create(p);
}
@Override
public String getDisplayXtoYofZ(String to, String of) {
return delegate.getDisplayXtoYofZ(to, of);
}
}