1 9 package org.ozoneDB.DxLib; 10 11 import java.util.*; 12 13 19 public final class DxVectorIterator extends DxAbstractIterator { 20 21 final static long serialVersionUID = 1L; 22 23 DxVectorCollection coll; 24 25 Vector vector; 26 27 int currentIndex; 28 29 Object currentObject; 30 31 32 34 public DxVectorIterator( DxVectorCollection _coll ) { 35 coll = _coll; 36 vector = coll.internalVector(); 37 reset(); 38 } 39 40 41 43 public Object object() { 44 return currentObject; 45 } 46 47 48 50 public Object next() { 51 if (atFirstObject) { 52 atFirstObject = false; 53 } else { 54 try { 55 while ((currentObject = vector.elementAt( ++currentIndex )) == null); 57 } catch (ArrayIndexOutOfBoundsException e) { 58 currentObject = null; 60 } 61 } 62 return currentObject; 63 } 64 65 66 68 public void reset() { 69 atFirstObject = true; 70 objectRemoved = false; 71 currentIndex = 0; 72 currentObject = currentIndex < vector.size() ? vector.elementAt( currentIndex ) : null; 73 } 74 75 76 78 public synchronized Object removeObject() { 79 Object answer = vector.elementAt( currentIndex ); 80 vector.removeElementAt( currentIndex-- ); 82 coll.decCounter(); 83 return answer; 84 } 85 } 86 | Popular Tags |