Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

AbstractVirtualDatabaseDataCollector.java

00001 /**
00002  * C-JDBC: Clustered JDBC.
00003  * Copyright (C) 2002-2004 French National Institute For Research In Computer
00004  * Science And Control (INRIA).
00005  * Contact: c-jdbc@objectweb.org
00006  * 
00007  * This library is free software; you can redistribute it and/or modify it
00008  * under the terms of the GNU Lesser General Public License as published by the
00009  * Free Software Foundation; either version 2.1 of the License, or any later
00010  * version.
00011  * 
00012  * This library is distributed in the hope that it will be useful, but WITHOUT
00013  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00014  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
00015  * for more details.
00016  * 
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with this library; if not, write to the Free Software Foundation,
00019  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
00020  *
00021  * Initial developer(s): Nicolas Modrzyk.
00022  * Contributor(s): 
00023  */
00024 package org.objectweb.cjdbc.common.monitor.virtualdatabase;
00025 
00026 import org.objectweb.cjdbc.common.exceptions.DataCollectorException;
00027 import org.objectweb.cjdbc.common.monitor.AbstractDataCollector;
00028 import org.objectweb.cjdbc.controller.core.Controller;
00029 import org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase;
00030 
00031 /**
00032  * Abstract class for virtual databases collectors
00033  * @author <a href="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk</a>
00034  */
00035 public abstract class AbstractVirtualDatabaseDataCollector
00036     extends
00037       AbstractDataCollector
00038 {
00039   private String virtualDatabaseName;
00040 
00041   /**
00042    * abstract collector contructor
00043    * @param virtualDatabaseName to collect data from
00044    */
00045   public AbstractVirtualDatabaseDataCollector(String virtualDatabaseName)
00046   {
00047     super();
00048     this.virtualDatabaseName = virtualDatabaseName;
00049   }
00050 
00051   /**
00052    * @see org.objectweb.cjdbc.common.monitor.AbstractDataCollector#collectValue()
00053    */
00054   public long collectValue() throws DataCollectorException
00055   {
00056     VirtualDatabase vdb = ((Controller)controller).getVirtualDatabase(
00057         virtualDatabaseName);
00058     return this.getValue(vdb);
00059   }
00060 
00061   /**
00062    * We have the database object so let's get the value we want from ot
00063    * @param database as an object to allow it through RMI, but IS a <code>VirtualDatabase</code>
00064    * @return the collected value 
00065    */
00066   public abstract long getValue(Object database);
00067   
00068   /**
00069    * @see org.objectweb.cjdbc.common.monitor.AbstractDataCollector#getTargetName()
00070    */
00071   public String getTargetName()
00072   {
00073     return virtualDatabaseName;
00074   }
00075 }

Generated on Mon Apr 11 22:01:29 2005 for C-JDBC by  doxygen 1.3.9.1