KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > cache > NodeCache


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.cache;
11 import org.mmbase.core.event.*;
12 import org.mmbase.module.core.*;
13
14 /**
15  * A cache for MMObjectNodes.
16  *
17  * @author Michiel Meeuwissen
18  * @version $Id: NodeCache.java,v 1.6 2006/06/23 17:01:00 michiel Exp $
19  */

20 public class NodeCache extends Cache implements NodeEventListener {
21     private static final int CACHE_SIZE = 4 * 1024;
22
23     private static NodeCache cache;
24
25     public static NodeCache getCache() {
26         return cache;
27     }
28
29     static {
30         cache = new NodeCache();
31         cache.putCache();
32     }
33
34     public String JavaDoc getName() {
35         return "Nodes";
36     }
37     public String JavaDoc getDescription() {
38         return "Node number -> MMObjectNodes";
39     }
40
41     /**
42      * Creates the MMBase ObjectNodes Cache.
43      */

44     private NodeCache() {
45         super(CACHE_SIZE);
46         // node cache is registered as a Listener in MMBase.java.
47
}
48
49
50     public Object JavaDoc remove(Object JavaDoc key) {
51         RelatedNodesCache.getCache().removeNode((Integer JavaDoc) key);
52         return super.remove(key);
53     }
54
55
56     public void notify(NodeEvent event) {
57         int type = event.getType();
58         if(type == Event.TYPE_DELETE || ((! event.isLocal()) && type == Event.TYPE_CHANGE)) {
59             Integer JavaDoc changedNodeNumber = new Integer JavaDoc(event.getNodeNumber());
60             remove(changedNodeNumber);
61         }
62     }
63 }
64
Popular Tags