mirror of
https://github.com/jlengrand/github-api.git
synced 2026-04-06 15:50:54 +00:00
38 lines
931 B
Java
38 lines
931 B
Java
package org.kohsuke.github;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.LinkedHashSet;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* {@link Iterable} that returns {@link PagedIterator}
|
|
*
|
|
* @author Kohsuke Kawaguchi
|
|
*/
|
|
public abstract class PagedIterable<T> implements Iterable<T> {
|
|
public abstract PagedIterator<T> iterator();
|
|
|
|
/**
|
|
* Eagerly walk {@link Iterable} and return the result in a list.
|
|
*/
|
|
public List<T> asList() {
|
|
List<T> r = new ArrayList<T>();
|
|
for(PagedIterator<T> i = iterator(); i.hasNext();) {
|
|
r.addAll(i.nextPage());
|
|
}
|
|
return r;
|
|
}
|
|
|
|
/**
|
|
* Eagerly walk {@link Iterable} and return the result in a set.
|
|
*/
|
|
public Set<T> asSet() {
|
|
LinkedHashSet<T> r = new LinkedHashSet<T>();
|
|
for(PagedIterator<T> i = iterator(); i.hasNext();) {
|
|
r.addAll(i.nextPage());
|
|
}
|
|
return r;
|
|
}
|
|
}
|