01: /*
02: * The contents of this file are subject to the
03: * Mozilla Public License Version 1.1 (the "License");
04: * you may not use this file except in compliance with the License.
05: * You may obtain a copy of the License at http://www.mozilla.org/MPL/
06: *
07: * Software distributed under the License is distributed on an "AS IS"
08: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
09: * See the License for the specific language governing rights and
10: * limitations under the License.
11: *
12: * The Initial Developer of the Original Code is Simulacra Media Ltd.
13: * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
14: *
15: * All Rights Reserved.
16: *
17: * Contributor(s):
18: */
19: package org.openharmonise.commons.cache;
20:
21: import java.util.List;
22:
23: /**
24: * A object which can be cached and can have cache listeners attached.
25: *
26: * @author Michael Bell
27: * @version $Revision: 1.1 $
28: *
29: */
30: public interface CacheableObject {
31:
32: /**
33: * Add <code>CacheListener</code>.
34: *
35: * @param listener listener to add
36: */
37: public void addCacheListener(CacheListener listener);
38:
39: /**
40: * Remove <code>CacheListener</code>.
41: *
42: * @param listener listener to remove
43: */
44: public void removeCacheListener(CacheListener listener);
45:
46: /**
47: * Returns the list of the cache listeners attached to this
48: * cachable object.
49: *
50: * @return the list of the cache listeners attached to this
51: * cachable object
52: */
53: public List getCacheListeners();
54:
55: /**
56: * Notify listeners that this object has been removed from cache.
57: */
58: public void notifyCacheListeners();
59: }
|