1 package uk.co.jezuk.mango.iterators; 2 3 12 public class SkippingIterator implements java.util.Iterator  13 { 14 public SkippingIterator(java.util.Iterator iterator, uk.co.jezuk.mango.Predicate predicate) 15 { 16 iter_ = iterator; 17 pred_ = predicate; 18 19 findNext(); 20 } 22 public boolean hasNext() 23 { 24 return (next_ != null); 25 } 27 public Object next() 28 { 29 Object current = next_; 30 findNext(); 31 return current; 32 } 34 public void remove() 35 { 36 throw new UnsupportedOperationException ("uk.co.jezuk.mango.SkippingIterator does not support the remove method"); 37 } 39 private void findNext() 40 { 41 next_ = null; 42 while(iter_.hasNext() && next_ == null) 43 { 44 Object candidate = iter_.next(); 45 if(!pred_.test(candidate)) 46 next_ = candidate; 47 } } 50 private java.util.Iterator iter_; 52 private uk.co.jezuk.mango.Predicate pred_; 53 private Object next_; 54 } 56 57 | Popular Tags |