KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > repository > DjObjectCache


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.repository;
31
32 import java.lang.ref.SoftReference JavaDoc;
33 import java.util.Hashtable JavaDoc;
34
35 import com.genimen.djeneric.repository.exceptions.DjenericException;
36
37 public class DjObjectCache
38 {
39   protected Hashtable JavaDoc objectTable = null;
40
41   public DjObjectCache()
42   {
43     objectTable = new Hashtable JavaDoc();
44   }
45
46   public void clear()
47   {
48     objectTable.clear();
49   }
50
51   public void cache(DjObject obj) throws DjenericException
52   {
53     if ((obj != null))
54     {
55       SoftReference JavaDoc ref = new SoftReference JavaDoc(obj);
56       objectTable.put(new Long JavaDoc(obj.getObjectId()), ref);
57     }
58   }
59
60   public DjObject lookup(long objectId)
61   {
62     return lookup(new Long JavaDoc(objectId));
63   }
64
65   public DjObject lookup(Long JavaDoc objectId)
66   {
67     DjObject obj = null;
68     SoftReference JavaDoc ref = (SoftReference JavaDoc) objectTable.get(objectId);
69     if (ref != null)
70     {
71       obj = (DjObject) ref.get();
72     }
73     return obj;
74   }
75
76   public void remove(long objectId)
77   {
78     remove(new Long JavaDoc(objectId));
79   }
80
81   public void remove(Long JavaDoc objectId)
82   {
83     objectTable.remove(objectId);
84   }
85
86   public void remove(DjObject obj) throws DjenericException
87   {
88     remove(obj.getObjectId());
89   }
90
91 }
Popular Tags