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.backend;
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.backend.DatabaseBackend;
00030 import org.objectweb.cjdbc.controller.core.Controller;
00031 import org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase;
00032
00033
00034
00035
00036
00037
00038 public abstract class AbstractBackendDataCollector
00039 extends
00040 AbstractDataCollector
00041 {
00042 private String backendName;
00043 private String virtualDatabaseName;
00044
00045
00046
00047
00048
00049
00050
00051 public AbstractBackendDataCollector(String backendName,
00052 String virtualDatabaseName)
00053 {
00054 super();
00055 this.backendName = backendName;
00056 this.virtualDatabaseName = virtualDatabaseName;
00057 }
00058
00059
00060
00061
00062 public long collectValue() throws DataCollectorException
00063 {
00064 try
00065 {
00066 VirtualDatabase vdb = ((Controller)controller).getVirtualDatabase(
00067 virtualDatabaseName);
00068 DatabaseBackend db = vdb.getAndCheckBackend(backendName,
00069 VirtualDatabase.NO_CHECK_BACKEND);
00070 return this.getValue(db);
00071 }
00072 catch (Exception e)
00073 {
00074 throw new DataCollectorException(ExceptionTypes.BACKEND_NOT_ACCESSIBLE);
00075 }
00076 }
00077
00078
00079
00080
00081
00082
00083 public abstract long getValue(Object backend);
00084
00085
00086
00087
00088
00089
00090 public String getTargetName()
00091 {
00092 return backendName;
00093 }
00094 }