Merge pull request #249 from thatsIch/meaningfuliterator

Implement correct Iterator type
This commit is contained in:
Chris
2014-10-05 08:56:56 -07:00
@@ -4,35 +4,40 @@ import java.util.Iterator;
import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IAEStack;
public class MeaningfulIterator<StackType extends IAEStack> implements Iterator public class MeaningfulIterator<StackType extends IAEStack> implements Iterator<StackType>
{ {
final Iterator<StackType> parent; private final Iterator<StackType> parent;
private StackType next; private StackType next;
public MeaningfulIterator(Iterator<StackType> iterator) { public MeaningfulIterator(Iterator<StackType> iterator)
parent = iterator; {
this.parent = iterator;
} }
@Override @Override
public boolean hasNext() public boolean hasNext()
{ {
while (parent.hasNext()) while (this.parent.hasNext())
{ {
next = parent.next(); this.next = this.parent.next();
if ( next.isMeaningful() ) if ( this.next.isMeaningful() )
{
return true; return true;
}
else else
parent.remove(); // self cleaning :3 {
this.parent.remove(); // self cleaning :3
}
} }
return false; return false;
} }
@Override @Override
public Object next() public StackType next()
{ {
return next; return this.next;
} }
@Override @Override