src/org/objectweb/cjdbc/controller/cache/result/ResultCacheTable.java

説明を見る。
00001 00025 package org.objectweb.cjdbc.controller.cache.result; 00026 00027 import java.util.Iterator; 00028 00029 import org.objectweb.cjdbc.common.sql.AbstractWriteRequest; 00030 import org.objectweb.cjdbc.common.sql.ParsingGranularities; 00031 import org.objectweb.cjdbc.common.sql.SelectRequest; 00032 import org.objectweb.cjdbc.common.sql.UpdateRequest; 00033 import org.objectweb.cjdbc.controller.cache.result.entries.CacheEntry; 00034 import org.objectweb.cjdbc.controller.cache.result.schema.CacheDatabaseTable; 00035 00047 public class ResultCacheTable extends ResultCache 00048 { 00055 public ResultCacheTable(int maxEntries, int pendingTimeout) 00056 { 00057 super(maxEntries, pendingTimeout); 00058 parsingGranularity = ParsingGranularities.TABLE; 00059 } 00060 00064 protected void processAddToCache(CacheEntry qe) 00065 { 00066 SelectRequest request = qe.getRequest(); 00067 for (Iterator i = request.getFrom().iterator(); i.hasNext();) 00068 cdbs.getTable((String) i.next()).addCacheEntry(qe); 00069 } 00070 00074 public boolean isUpdateNecessary(UpdateRequest request) 00075 { 00076 return true; 00077 } 00078 00082 protected void processWriteNotify(AbstractWriteRequest request) 00083 { 00084 CacheDatabaseTable cdt = cdbs.getTable(request.getTableName()); 00085 00086 if (cdt != null) 00087 cdt.invalidateAll(); 00088 else 00089 { 00090 logger.warn("Table " + request.getTableName() 00091 + " not found in cache schema. Flushing whole cache."); 00092 flushCache(); 00093 } 00094 } 00095 00099 public String getName() 00100 { 00101 return "table"; 00102 } 00103 }

CJDBCversion1.0.4に対してTue Oct 12 15:16:00 2004に生成されました。 doxygen 1.3.8