001 package railo.runtime.query; 002 003 import java.util.Date; 004 005 import railo.runtime.db.SQL; 006 import railo.runtime.type.Query; 007 008 /** 009 * interface for a query cache 010 */ 011 public interface QueryCache { 012 013 /** 014 * clear expired queries from cache 015 */ 016 public abstract void clearUnused(); 017 018 /** 019 * returns a Query from Query Cache or null if no match found 020 * @param sql 021 * @param datasource 022 * @param username 023 * @param password 024 * @param cacheAfter 025 * @return Query 026 */ 027 public abstract Query getQuery(SQL sql, String datasource, String username, 028 String password, Date cacheAfter); 029 030 /** 031 * sets a Query to Cache 032 * @param sql 033 * @param datasource 034 * @param username 035 * @param password 036 * @param value 037 * @param cacheBefore 038 */ 039 public abstract void set(SQL sql, String datasource, String username, 040 String password, Object value, Date cacheBefore); 041 042 /** 043 * clear the cache 044 */ 045 public abstract void clear(); 046 047 /** 048 * removes query from cache 049 * @param sql 050 * @param datasource 051 * @param username 052 * @param password 053 */ 054 public abstract void remove(SQL sql, String datasource,String username, String password); 055 056 public abstract Object get(SQL sql, String datasource,String username, String password, Date cachedafter); 057 058 }