01: /**
02: * $RCSfile: Cacheable.java,v $
03: * $Revision: 1.3 $
04: * $Date: 2006/01/07 00:21:06 $
05: *
06: * Copyright (C) 2000 CoolServlets.com. All rights reserved.
07: *
08: * ===================================================================
09: * The Apache Software License, Version 1.1
10: *
11: * Redistribution and use in source and binary forms, with or without
12: * modification, are permitted provided that the following conditions
13: * are met:
14: *
15: * 1. Redistributions of source code must retain the above copyright
16: * notice, this list of conditions and the following disclaimer.
17: *
18: * 2. Redistributions in binary form must reproduce the above copyright
19: * notice, this list of conditions and the following disclaimer in
20: * the documentation and/or other materials provided with the
21: * distribution.
22: *
23: * 3. The end-user documentation included with the redistribution,
24: * if any, must include the following acknowledgment:
25: * "This product includes software developed by
26: * CoolServlets.com (http://www.Yasna.com)."
27: * Alternately, this acknowledgment may appear in the software itself,
28: * if and wherever such third-party acknowledgments normally appear.
29: *
30: * 4. The names "Jive" and "CoolServlets.com" must not be used to
31: * endorse or promote products derived from this software without
32: * prior written permission. For written permission, please
33: * contact webmaster@Yasna.com.
34: *
35: * 5. Products derived from this software may not be called "Jive",
36: * nor may "Jive" appear in their name, without prior written
37: * permission of CoolServlets.com.
38: *
39: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
40: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
41: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
42: * DISCLAIMED. IN NO EVENT SHALL COOLSERVLETS.COM OR
43: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
45: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
46: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
47: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
48: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
49: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50: * SUCH DAMAGE.
51: * ====================================================================
52: *
53: * This software consists of voluntary contributions made by many
54: * individuals on behalf of CoolServlets.com. For more information
55: * on CoolServlets.com, please see <http://www.Yasna.com>.
56: */package com.Yasna.util;
57:
58: /**
59: * Interface that defines the necessary behavior for objects added to a Cache.
60: * Objects only need to know how big they are (in bytes). That size
61: * should be considered to be a best estimate of how much memory the Object
62: * occupies and may be based on empirical trials or dynamic calculations.<p>
63: *
64: * While the accuracy of the size calculation is important, care should be
65: * taken to minimize the computation time so that cache operations are
66: * speedy.
67: *
68: * @see Cache
69: */
70: public interface Cacheable {
71:
72: /**
73: * Returns the approximate size of the Object in bytes. The size should be
74: * considered to be a best estimate of how much memory the Object occupies
75: * and may be based on empirical trials or dynamic calculations.<p>
76: *
77: * @return the size of the Object in bytes.
78: */
79: public int getSize();
80: }
|