1 58 package org.apache.ecs.storage; 59 60 import java.io.Serializable ; 61 62 public class Array implements java.util.Enumeration ,java.io.Serializable 63 { 64 private int current = 0; 65 private int size = 10; 66 private int grow = 2; 67 private int place = 0; 68 private Object [] elements = null; 69 private Object [] tmpElements = null; 70 71 public Array() 72 { 73 init(); 74 } 75 76 public Array(int size) 77 { 78 setSize(size); 79 init(); 80 } 81 82 public Array(int size,int grow) 83 { 84 setSize(size); 85 setGrow(grow); 86 init(); 87 } 88 89 private void init() 90 { 91 elements = new Object [size]; 92 } 93 94 public Object nextElement() throws java.util.NoSuchElementException 95 { 96 if ( elements[place] != null && place != current) 97 { 98 place++; 99 return elements[place - 1]; 100 } 101 else 102 { 103 place = 0; 104 throw new java.util.NoSuchElementException (); 105 } 106 } 107 108 public boolean hasMoreElements() 109 { 110 if( place < elements.length && current != place ) 111 return true; 112 return false; 113 } 114 115 public void setSize(int size) 116 { 117 this.size = size; 118 } 119 120 public int getCurrentSize() 121 { 122 return current; 123 } 124 125 public void rehash() 126 { 127 tmpElements = new Object [size]; 128 int count = 0; 129 for ( int x = 0; x < elements.length; x++ ) 130 { 131 if( elements[x] != null ) 132 { 133 tmpElements[count] = elements[x]; 134 count++; 135 } 136 } 137 elements = (Object [])tmpElements.clone(); 138 tmpElements = null; 139 current = count; 140 } 141 142 public void setGrow(int grow) 143 { 144 this.grow = grow; 145 } 146 147 public void grow() 148 { 149 size = size+=(size/grow); 150 rehash(); 151 } 152 153 public void add(Object o) 154 { 155 if( current == elements.length ) 156 grow(); 157 158 try 159 { 160 elements[current] = o; 161 current++; 162 } 163 catch(java.lang.ArrayStoreException ase) 164 { 165 } 166 } 167 168 public void add(int location,Object o) 169 { 170 try 171 { 172 elements[location] = o; 173 } 174 catch(java.lang.ArrayStoreException ase) 175 { 176 } 177 } 178 179 public void remove(int location) 180 { 181 elements[location] = null; 182 } 183 184 public int location(Object o) throws NoSuchObjectException 185 { 186 int loc = -1; 187 for ( int x = 0; x < elements.length; x++ ) 188 { 189 if((elements[x] != null && elements[x] == o )|| 190 (elements[x] != null && elements[x].equals(o))) 191 { 192 loc = x; 193 break; 194 } 195 } 196 if( loc == -1 ) 197 throw new NoSuchObjectException(); 198 return(loc); 199 } 200 201 public Object get(int location) 202 { 203 return elements[location]; 204 } 205 206 public java.util.Enumeration elements() 207 { 208 return this; 209 } 210 } 211 | Popular Tags |