1 21 package oracle.toplink.essentials.internal.identitymaps; 23 24 import java.util.*; 25 26 29 public class IdentityMapKeyEnumeration implements Enumeration { 30 protected FullIdentityMap map; 31 protected Enumeration cacheKeysEnum; 32 protected CacheKey nextKey; 33 34 public IdentityMapKeyEnumeration(FullIdentityMap map) { 35 this.map = map; 36 this.cacheKeysEnum = map.getCacheKeys().elements(); 37 } 38 39 public boolean hasMoreElements() { 40 this.nextKey = getNextCacheKey(); 41 return this.nextKey != null; 42 } 43 44 public Object nextElement() { 45 if (this.nextKey == null) { 46 throw new NoSuchElementException("IdentityMapKeyEnumeration nextElement"); 47 } 48 49 this.nextKey.checkReadLock(); 52 return this.nextKey; 53 } 54 55 protected CacheKey getNextCacheKey() { 56 CacheKey key = null; 57 while (cacheKeysEnum.hasMoreElements() && (key == null)) { 58 key = (CacheKey)cacheKeysEnum.nextElement(); 59 } 60 return key; 61 } 62 } 63 | Popular Tags |