1 21 package com.db4o.foundation; 22 23 29 public class Iterable4Adaptor { 30 31 private static final Object EOF = new Object (); 32 private static final Object MOVE_NEXT = new Object (); 33 34 private final Iterable4 _delegate; 35 36 private Iterator4 _iterator; 37 38 private Object _current = MOVE_NEXT; 39 40 public Iterable4Adaptor(Iterable4 delegate) { 41 _delegate = delegate; 42 } 43 44 public boolean hasNext() { 45 if (_current == MOVE_NEXT) { 46 return moveNext(); 47 } 48 return _current != EOF; 49 } 50 51 public Object next() { 52 if (!hasNext()) { 53 throw new IllegalStateException (); 54 } 55 Object returnValue = _current; 56 _current = MOVE_NEXT; 57 return returnValue; 58 } 59 60 private boolean moveNext() { 61 if (null == _iterator) { 62 _iterator = _delegate.iterator(); 63 } 64 if (_iterator.moveNext()) { 65 _current = _iterator.current(); 66 return true; 67 } 68 _current = EOF; 69 return false; 70 } 71 72 public void reset() { 73 _iterator = null; 74 _current = MOVE_NEXT; 75 } 76 } 77 | Popular Tags |