1 /** 2 * C-JDBC: Clustered JDBC. 3 * Copyright (C) 2002-2004 French National Institute For Research In Computer 4 * Science And Control (INRIA). 5 * Contact: c-jdbc@objectweb.org 6 * 7 * This library is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as published by the 9 * Free Software Foundation; either version 2.1 of the License, or any later 10 * version. 11 * 12 * This library is distributed in the hope that it will be useful, but WITHOUT 13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 15 * for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public License 18 * along with this library; if not, write to the Free Software Foundation, 19 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 20 * 21 * Initial developer(s): Nicolas Modrzyk. 22 * Contributor(s): 23 */ 24 package org.objectweb.cjdbc.common.monitor.virtualdatabase; 25 26 import org.objectweb.cjdbc.common.exceptions.DataCollectorException; 27 import org.objectweb.cjdbc.common.monitor.AbstractDataCollector; 28 import org.objectweb.cjdbc.controller.core.Controller; 29 import org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase; 30 31 /** 32 * Abstract class for virtual databases collectors 33 * @author <a HREF="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk</a> 34 */ 35 public abstract class AbstractVirtualDatabaseDataCollector 36 extends 37 AbstractDataCollector 38 { 39 private String virtualDatabaseName; 40 41 /** 42 * abstract collector contructor 43 * @param virtualDatabaseName to collect data from 44 */ 45 public AbstractVirtualDatabaseDataCollector(String virtualDatabaseName) 46 { 47 super(); 48 this.virtualDatabaseName = virtualDatabaseName; 49 } 50 51 /** 52 * @see org.objectweb.cjdbc.common.monitor.AbstractDataCollector#collectValue() 53 */ 54 public long collectValue() throws DataCollectorException 55 { 56 VirtualDatabase vdb = ((Controller)controller).getVirtualDatabase( 57 virtualDatabaseName); 58 return this.getValue(vdb); 59 } 60 61 /** 62 * We have the database object so let's get the value we want from ot 63 * @param database as an object to allow it through RMI, but IS a <code>VirtualDatabase</code> 64 * @return the collected value 65 */ 66 public abstract long getValue(Object database); 67 68 /** 69 * @see org.objectweb.cjdbc.common.monitor.AbstractDataCollector#getTargetName() 70 */ 71 public String getTargetName() 72 { 73 return virtualDatabaseName; 74 } 75 } 76