00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 package org.objectweb.cjdbc.common.monitor.cache;
00025
00026 import org.objectweb.cjdbc.common.exceptions.DataCollectorException;
00027 import org.objectweb.cjdbc.common.exceptions.ExceptionTypes;
00028 import org.objectweb.cjdbc.common.monitor.AbstractDataCollector;
00029 import org.objectweb.cjdbc.controller.cache.result.AbstractResultCache;
00030 import org.objectweb.cjdbc.controller.core.Controller;
00031 import org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase;
00032
00033
00034
00035
00036
00037 public abstract class AbstractCacheStatsDataCollector
00038 extends
00039 AbstractDataCollector
00040 {
00041 private String virtualDatabaseName;
00042
00043
00044
00045
00046
00047 public AbstractCacheStatsDataCollector(String virtualDatabaseName)
00048 {
00049 super();
00050 this.virtualDatabaseName = virtualDatabaseName;
00051 }
00052
00053
00054
00055
00056 public long collectValue() throws DataCollectorException
00057 {
00058 VirtualDatabase vdb = ((Controller)controller).getVirtualDatabase(
00059 virtualDatabaseName);
00060 AbstractResultCache cache = vdb.getRequestManager().getResultCache();
00061 if (cache == null)
00062 throw new DataCollectorException(ExceptionTypes.NO_CACHE_ENABLED);
00063 return this.getValue(cache);
00064 }
00065
00066
00067
00068
00069
00070
00071 public abstract long getValue(Object cache);
00072
00073
00074
00075
00076
00077
00078 public String getTargetName()
00079 {
00080 return virtualDatabaseName;
00081 }
00082 }