package siena.gae;
import siena.core.async.QueryAsync;
import siena.core.async.SienaFuture;
/**
* @author mandubian
*
* A Siena Iterable<Model> encapsulating a iteration per page
* its Iterator<Model>...
*/
public class SienaIterableAsyncPerPageWrapper<T> implements SienaFuture<Iterable<T>> {
/**
* The wrapped <code>Query</code>.
*/
private QueryAsync<T> query;
/**
* The pageSize
*/
private int pageSize;
/**
* The wrapped <code>Iterable</code>.
*/
SienaFuture<Iterable<T>> iterable;
public SienaIterableAsyncPerPageWrapper(QueryAsync<T> query, int pageSize) {
this.query = query;
this.pageSize = pageSize;
this.iterable = query.paginate(this.pageSize).iter();
}
public Iterable<T> get() {
return new SienaIterableAsyncPerPage<T>(query, pageSize, iterable.get());
}
}