72 |
|
|
73 |
protected abstract Object makeValue(Object key, Object value, ReferenceQueue queue); |
protected abstract Object makeValue(Object key, Object value, ReferenceQueue queue); |
74 |
|
|
75 |
|
|
76 |
|
protected void clean() { |
77 |
|
Map.Entry o; |
78 |
|
while((o = (Map.Entry)queue.poll()) != null) |
79 |
|
map.remove(o.getKey()); |
80 |
|
} |
81 |
|
|
82 |
public Object put(Object key, Object value) { |
public Object put(Object key, Object value) { |
83 |
|
clean(); |
84 |
Map.Entry ret = (Map.Entry)map.put(key, makeValue(key, value, queue)); |
Map.Entry ret = (Map.Entry)map.put(key, makeValue(key, value, queue)); |
85 |
if(ret == null) return null; |
if(ret == null) return null; |
86 |
return ret.getValue(); |
return ret.getValue(); |
112 |
}; |
}; |
113 |
|
|
114 |
public Set entrySet() { |
public Set entrySet() { |
115 |
|
clean(); |
116 |
return entrySet; |
return entrySet; |
117 |
} |
} |
118 |
|
|