SoftHashMap.java

biz/hammurapi/cache/SoftHashMap.java

Violations

Inspector Message Severity Location
Java Inspector 048 Copyrights information should be present in each file. 1
Java Inspector 086 Use equals() instead of == or != to compare objects. 1 73:29
Java Inspector 089 Undocumented constructor 2 43:9
Java Inspector 089 Undocumented constructor 2 47:9
Java Inspector 089 Undocumented constructor 2 51:9
Java Inspector 089 Undocumented constructor 2 55:9
Java Inspector 089 Undocumented method 2 59:9
Java Inspector 089 Undocumented method 2 63:9

Source code

1/*
2 * hgcommons 9
3 * Hammurapi Group Common Library
4 * Copyright (C) 2003 Hammurapi Group
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * URL: http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/products/products/hgcommons/index.html
21 * e-Mail: support@hammurapi.biz
22 */
23package biz.hammurapi.cache;
24
25import java.lang.ref.Reference;
26import java.lang.ref.SoftReference;
27import java.util.HashMap;
28import java.util.Map;
29
30/**
31 * Map with soft-referenced values.
32 * @author Pavel Vlasov
33 * @revision $Revision$
34 */
35public class SoftHashMap extends HashMap {
36 private Object nullMarker=new Object();
37
38 /**
39 *
40 */
41 private static final long serialVersionUID = 4095082501213777588L;
42
43 public SoftHashMap() {
44 super();
45 }
46
47 public SoftHashMap(int initialCapacity) {
48 super(initialCapacity);
49 }
50
51 public SoftHashMap(int initialCapacity, float loadFactor) {
52 super(initialCapacity, loadFactor);
53 }
54
55 public SoftHashMap(Map m) {
56 super(m);
57 }
58
59 public Object put(Object key, Object value) {
60 return super.put(key, new SoftReference(value==null ? nullMarker : value));
61 }
62
63 public Object get(Object key) {
64 Reference ref = (Reference) super.get(key);
65 if (ref==null) {
66 return null;
67 }
68
69 Object value = ref.get();
70 if (value==null) {
71 remove(key);
72 }
73 return value==nullMarker ? null : value;
74 }
75
76}
77