io.ebeaninternal.json.ModifyAwareIterator Maven / Gradle / Ivy
package io.ebeaninternal.json;
import java.util.Iterator;
/**
* Wraps an iterator for the purposes of detecting modifications.
*/
public class ModifyAwareIterator implements Iterator {
private final ModifyAwareOwner owner;
private final Iterator it;
/**
* Create with an Owner and the underlying Iterator this wraps.
*
* The owner is notified of the removals.
*
*/
public ModifyAwareIterator(ModifyAwareOwner owner, Iterator it) {
this.owner = owner;
this.it = it;
}
@Override
public boolean hasNext() {
return it.hasNext();
}
@Override
public E next() {
return it.next();
}
@Override
public void remove() {
owner.markAsModified();
it.remove();
}
}