KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > cjdbc > controller > cache > result > rules > EagerCaching


1 /**
2  * C-JDBC: Clustered JDBC.
3  * Copyright (C) 2002-2005 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: c-jdbc@objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or any later
10  * version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
20  *
21  * Initial developer(s): Nicolas Modrzyk
22  * Contributor(s):
23  */

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

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

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

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

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