public Iterator<RevCommit> iterator() {
final RevCommit first;
try {
first = RevWalk.this.next();
} catch (MissingObjectException e) {
throw new RevWalkException(e);
} catch (IncorrectObjectTypeException e) {
throw new RevWalkException(e);
} catch (IOException e) {
throw new RevWalkException(e);
}
return new Iterator<RevCommit>() {
RevCommit next = first;
public boolean hasNext() {
return next != null;
}
public RevCommit next() {
try {
final RevCommit r = next;
next = RevWalk.this.next();
return r;
} catch (MissingObjectException e) {
throw new RevWalkException(e);
} catch (IncorrectObjectTypeException e) {
throw new RevWalkException(e);
} catch (IOException e) {
throw new RevWalkException(e);
}
}
public void remove() {
throw new UnsupportedOperationException();