KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ozoneDB > DxLib > DxVectorIterator


1 // You can redistribute this software and/or modify it under the terms of
2
// the Ozone Library License version 1 published by ozone-db.org.
3
//
4
// The original code and portions created by SMB are
5
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
6
//
7
// $Id: DxVectorIterator.java,v 1.1 2001/12/18 10:31:30 per_nyfelt Exp $
8

9 package org.ozoneDB.DxLib;
10
11 import java.util.*;
12
13 /**
14  *
15  *
16  * @author <a HREF="http://www.softwarebuero.de/">SMB</a>
17  * @version $Revision: 1.1 $Date: 2001/12/18 10:31:30 $
18  */

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 JavaDoc currentObject;
30     
31     
32     /**
33      */

34     public DxVectorIterator( DxVectorCollection _coll ) {
35         coll = _coll;
36         vector = coll.internalVector();
37         reset();
38     }
39     
40     
41     /**
42      */

43     public Object JavaDoc object() {
44         return currentObject;
45     }
46     
47     
48     /**
49      */

50     public Object JavaDoc next() {
51         if (atFirstObject) {
52             atFirstObject = false;
53         } else {
54             try {
55                 //skip null elements
56
while ((currentObject = vector.elementAt( ++currentIndex )) == null);
57             } catch (ArrayIndexOutOfBoundsException JavaDoc e) {
58                 //object returns null if currentIndex exceeds vector size
59
currentObject = null;
60             }
61         }
62         return currentObject;
63     }
64     
65     
66     /**
67      */

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     /**
77      */

78     public synchronized Object JavaDoc removeObject() {
79         Object JavaDoc answer = vector.elementAt( currentIndex );
80         //decrement index to point to the same index after next()
81
vector.removeElementAt( currentIndex-- );
82         coll.decCounter();
83         return answer;
84     }
85 }
86
Popular Tags