KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ojb > broker > cache > ObjectCacheInternal


1 package org.apache.ojb.broker.cache;
2
3 /* Copyright 2002-2005 The Apache Software Foundation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 import org.apache.ojb.broker.Identity;
19
20 /**
21  * Internal used extension of the {@link ObjectCache}.
22  *
23  * @author <a HREF="mailto:arminw@apache.org">Armin Waibel</a>
24  * @version $Id: ObjectCacheInternal.java,v 1.1.2.4 2005/12/21 22:24:15 tomdz Exp $
25  */

26 public interface ObjectCacheInternal extends ObjectCache
27 {
28     /**
29      * Object was update or insert.
30      */

31     public static final int TYPE_WRITE = 5;
32     /**
33      * Object was read from a cache entity (e.g. from a second-level cache).
34      */

35     public static final int TYPE_CACHED_READ = 7;
36     /**
37      * Object was new materialized from persistence storage.
38      */

39     public static final int TYPE_NEW_MATERIALIZED = 11;
40     /**
41      * Object caching type was unkown.
42      */

43     public static final int TYPE_UNKNOWN = 0;
44     /**
45      * Object caching type used for temporary storage of objects,
46      * these objects will never be pushed to a higher level cache.
47      */

48     public static final int TYPE_TEMP = -1;
49
50
51     /**
52      * For internal use.
53      * This method have to be used by all OJB classes to cache objects.
54      * It allows to decide if an object should be cached or not. Useful
55      * for two level caches to reduce object copy costs.
56      */

57     public void doInternalCache(Identity oid, Object JavaDoc obj, int type);
58
59     /**
60      * For internal use within <em>ObjectCache</em> implementations or to
61      * build two-level caches. Handle with care.
62      * <p>
63      * Used to cache new objects (not already cached) by it's
64      * {@link org.apache.ojb.broker.Identity}. This method was used to
65      * cache new materialized objects and should work as a "atomic" method
66      * (the check and the put of the object should be atomic) to avoid
67      * concurrency problems.
68      * </p>
69      * <p>
70      * Currently it's not mandatory that all <em>ObjectCache</em> implementations
71      * support this method, so in some cases it's allowed to delegate this
72      * method call to the standard {@link #cache(org.apache.ojb.broker.Identity, Object) cache}.
73      * </p>
74      *
75      * @param oid Identity of the object to cache.
76      * @param obj The object to cache.
77      * @return If object was added <em>true</em>, else <em>false</em>.
78      */

79     public boolean cacheIfNew(Identity oid, Object JavaDoc obj);
80 }
81
Popular Tags