00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 package org.objectweb.cjdbc.controller.cache.result.entries;
00026
00027 import java.util.Date;
00028
00029 import org.objectweb.cjdbc.common.sql.SelectRequest;
00030 import org.objectweb.cjdbc.controller.cache.result.AbstractResultCache;
00031 import org.objectweb.cjdbc.controller.virtualdatabase.ControllerResultSet;
00032
00033
00034
00035
00036
00037
00038
00039
00040 public class ResultCacheEntryEager extends ResultCacheEntry
00041 {
00042 private AbstractResultCache cache;
00043 private long timeout;
00044 private long deadline;
00045
00046
00047
00048
00049
00050
00051
00052
00053 public ResultCacheEntryEager(AbstractResultCache cache,
00054 SelectRequest request, ControllerResultSet result, long timeout)
00055 {
00056 super(request, result);
00057 this.cache = cache;
00058 if (timeout > 0)
00059 this.deadline = System.currentTimeMillis() + timeout;
00060 else
00061 this.deadline = NO_DEADLINE;
00062 }
00063
00064
00065
00066
00067 public void invalidate()
00068 {
00069 state = CACHE_INVALID;
00070 if(cache!=null)
00071 cache.removeFromCache(request);
00072 if (result != null)
00073 result = null;
00074 cache = null;;
00075 }
00076
00077
00078
00079
00080 public String getType()
00081 {
00082 return "Eager";
00083 }
00084
00085
00086
00087
00088 public String[] toStringTable()
00089 {
00090 return new String[]{request.getSQL(), getType(), getState(),
00091 new Date(getDeadline()).toString(), "" + getSizeOfResult()};
00092 }
00093
00094
00095
00096
00097
00098
00099 public long getDeadline()
00100 {
00101 return deadline;
00102 }
00103
00104
00105
00106
00107
00108
00109 public long getTimeout()
00110 {
00111 return timeout;
00112 }
00113 }