From 5664fd4644c78f4571a1a72e6b9f0511fb10720a Mon Sep 17 00:00:00 2001 From: abranson Date: Tue, 2 Aug 2011 22:10:28 +0200 Subject: Finished move to generics. Enforced 1.6 compliance for now. No errors or warnings :) --- source/com/c2kernel/utils/TransientCache.java | 57 +++++++++++++-------------- 1 file changed, 28 insertions(+), 29 deletions(-) mode change 100755 => 100644 source/com/c2kernel/utils/TransientCache.java (limited to 'source/com/c2kernel/utils/TransientCache.java') diff --git a/source/com/c2kernel/utils/TransientCache.java b/source/com/c2kernel/utils/TransientCache.java old mode 100755 new mode 100644 index b93bbd7..8991b87 --- a/source/com/c2kernel/utils/TransientCache.java +++ b/source/com/c2kernel/utils/TransientCache.java @@ -12,18 +12,17 @@ import java.util.*; * Copyright (C) 2003 CERN - European Organization for Nuclear Research * All rights reserved. **************************************************************************/ -public abstract class TransientCache extends AbstractMap { +public abstract class TransientCache extends AbstractMap { - private Map map = new Hashtable(); - public synchronized Set entrySet() { - Map newMap; - Iterator iter; - newMap = new Hashtable(); - iter = map.entrySet().iterator(); + private Map> map = new Hashtable>(); + + public synchronized Set> entrySet() { + Map newMap = new Hashtable(); + Iterator>> iter = map.entrySet().iterator(); while (iter.hasNext()) { - Map.Entry me = (Map.Entry)iter.next(); - Reference ref = (Reference)me.getValue(); - Object o = ref.get(); + Entry> me = iter.next(); + Reference ref = me.getValue(); + V o = ref.get(); if (o == null) { // Delete cleared reference iter.remove(); @@ -36,35 +35,35 @@ public abstract class TransientCache extends AbstractMap { return newMap.entrySet(); } - public synchronized Object put(Object key, Object value) { - Reference ref = makeReference(value); - ref = (Reference)map.put(key, ref); + public synchronized V put(K key, V value) { + Reference ref = makeReference(value); + ref = (Reference)map.put(key, ref); if (ref != null) return (ref.get()); return null; } - public abstract Reference makeReference(Object value); + public abstract Reference makeReference(Object value); - public Object remove(Object key) { - Iterator i = map.entrySet().iterator(); - Entry correctEntry = null; + public V remove(Object key) { + Iterator>> i = map.entrySet().iterator(); + Entry> correctEntry = null; if (key == null) { while (correctEntry == null && i.hasNext()) { - Entry e = (Entry)i.next(); + Entry> e = i.next(); if (e.getKey() == null) correctEntry = e; } } else { while (correctEntry == null && i.hasNext()) { - Entry e = (Entry)i.next(); + Entry> e = i.next(); if (key.equals(e.getKey())) correctEntry = e; } } - Object oldValue = null; + V oldValue = null; if (correctEntry != null) { - Reference correctReference = (Reference)correctEntry.getValue(); + Reference correctReference = correctEntry.getValue(); oldValue = correctReference.get(); i.remove(); } @@ -77,21 +76,21 @@ public abstract class TransientCache extends AbstractMap { map.entrySet().clear(); } - private transient Set keySet = null; + private transient Set keySet = null; - public Set keySet() { + public Set keySet() { if (keySet == null) { - keySet = new AbstractSet() { - public Iterator iterator() { - return new Iterator() { - private Iterator i = map.entrySet().iterator(); + keySet = new AbstractSet() { + public Iterator iterator() { + return new Iterator() { + private Iterator>> i = map.entrySet().iterator(); public boolean hasNext() { return i.hasNext(); } - public Object next() { - return ((Entry)i.next()).getKey(); + public K next() { + return i.next().getKey(); } public void remove() { -- cgit v1.2.3