KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ofbiz > minerva > pool > cache > ObjectCache


1 /*
2  * Licensed under the X license (see http://www.x.org/terms.htm)
3  */

4 package org.ofbiz.minerva.pool.cache;
5
6 /**
7  * A caching map. This associates one or more values with a
8  * key. When a value is requested for a key, a cached value
9  * will be returned if available, and a new value will be
10  * generated and cached otherwise. Instances of this interface
11  * require a CachedObjectFactory to generate new values, and
12  * control the caching in custom ways.
13  * @see org.ofbiz.minerva.pool.cache.CachedObjectFactory
14  * @author Aaron Mulder ammulder@alumni.princeton.edu
15  */

16 public interface ObjectCache {
17
18     /**
19      * When setting the size, this constant means there should
20      * be no limit on the size of the cache. This is not
21      * recommended under ordinary circumstances.
22      */

23     public final static int UNLIMITED_SIZE = 0;
24
25     /**
26      * Gets a cached object with the specified key. This is not
27      * an exclusive function - any number of clients may get the
28      * same object at the same time.
29      * @see #useObject
30      */

31     public Object JavaDoc getObject(Object JavaDoc key);
32
33     /**
34      * Gets a cached object with the specified key. This is an
35      * exclusive function - no other client may get the same
36      * object at the same time. You must return the object using
37      * returnObject before another client may reuse this object.
38      * @see #getObject
39      * @see #returnObject
40      */

41     public Object JavaDoc useObject(Object JavaDoc key);
42
43     /**
44      * Returns an object to the cache that is currently in use
45      * (checked out via useObject). No other client can use
46      * the same object until this method is called. The original
47      * client may not continue to use the object after this
48      * method is called.
49      * @see #useObject
50      */

51     public void returnObject(Object JavaDoc key, Object JavaDoc value);
52
53     /**
54      * Removes all objects from the cache that have this key.
55      * There will only be more than one object with the same
56      * key if clients are using useObject and returnObject
57      * instead of getObject.
58      */

59     public void removeObjects(Object JavaDoc key);
60
61     /**
62      * Sets the maximum number of objects in the cache. If the
63      * number of objects is at the limit and a new object is
64      * requested, other objects will be dropped from the cache.
65      */

66     public void setSize(int size);
67
68     /**
69      * Removes all cached objects and stops the cache.
70      */

71     public void close();
72 }
73
Popular Tags