KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > continuent > sequoia > controller > cache > result > rules > EagerCaching


1 /**
2  * Sequoia: Database clustering technology.
3  * Copyright (C) 2002-2004 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Copyright (C) 2005 AmicoSoft, Inc. dba Emic Networks
6  * Contact: sequoia@continuent.org
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  * Initial developer(s): Nicolas Modrzyk
21  * Contributor(s):
22  */

23
24 package org.continuent.sequoia.controller.cache.result.rules;
25
26 import org.continuent.sequoia.common.xml.DatabasesXmlTags;
27 import org.continuent.sequoia.controller.backend.result.ControllerResultSet;
28 import org.continuent.sequoia.controller.cache.result.AbstractResultCache;
29 import org.continuent.sequoia.controller.cache.result.CacheBehavior;
30 import org.continuent.sequoia.controller.cache.result.entries.AbstractResultCacheEntry;
31 import org.continuent.sequoia.controller.cache.result.entries.ResultCacheEntryEager;
32 import org.continuent.sequoia.controller.requests.SelectRequest;
33
34 /**
35  * EagerCaching means that all entries in the cache are always coherent and any
36  * update query (insert,delete,update,...) will automatically invalidate the
37  * corresponding entry in the cache. This was the previous cache behavior for
38  * all queries
39  *
40  * @author <a HREF="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk </a>
41  * @version 1.0
42  */

43 public class EagerCaching extends CacheBehavior
44 {
45   private long timeout;
46
47   /**
48    * Define this CacheBehavior as EagerCaching
49    *
50    * @param timeout Timeout for this cache entry
51    */

52   public EagerCaching(long timeout)
53   {
54     this.timeout = timeout;
55   }
56
57   /**
58    * @see org.continuent.sequoia.controller.cache.result.CacheBehavior#getCacheEntry(SelectRequest,
59    * ControllerResultSet, AbstractResultCache)
60    */

61   public AbstractResultCacheEntry getCacheEntry(SelectRequest sqlQuery,
62       ControllerResultSet result, AbstractResultCache cache)
63   {
64     return new ResultCacheEntryEager(cache, sqlQuery, result, timeout);
65   }
66
67   /**
68    * @see org.continuent.sequoia.common.xml.XmlComponent#getXml()
69    */

70   public String JavaDoc getXml()
71   {
72     return "<" + DatabasesXmlTags.ELT_EagerCaching + "/>";
73   }
74
75 }
Popular Tags