1 package net.sf.jga.fn.algorithm; 33 34 import java.util.Iterator ; 35 import net.sf.jga.fn.UnaryFunctor; 36 import net.sf.jga.util.FindIterator; 37 38 49 50 abstract public class FindIteratorFunctor<T> 51 extends UnaryFunctor<Iterator <? extends T>, FindIterator<T>> 52 { 53 59 protected FindIterator<T> wrap(Iterator <? extends T> iterator) { 60 if (iterator instanceof Wrapper && ((Wrapper)iterator).owner == this) 61 return (FindIterator<T>) iterator; 66 67 return new Wrapper<T>(this, iterator); 68 69 } 70 71 76 static private class Wrapper<T> extends FindIterator<T> { 77 private FindIteratorFunctor<T> owner; 78 public Wrapper(FindIteratorFunctor<T> owner, Iterator <? extends T> iter) { 79 super(iter); this.owner = owner; 80 } 81 } 82 } 83 | Popular Tags |