1 /** 2 * Sequoia: Database clustering technology. 3 * Copyright (C) 2002-2004 French National Institute For Research In Computer 4 * Science And Control (INRIA). 5 * Contact: sequoia@continuent.org 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 * Initial developer(s): Nicolas Modrzyk. 20 * Contributor(s): 21 */ 22 package org.continuent.sequoia.common.jmx.monitoring.virtualdatabase; 23 24 import org.continuent.sequoia.common.exceptions.DataCollectorException; 25 import org.continuent.sequoia.common.jmx.monitoring.AbstractDataCollector; 26 import org.continuent.sequoia.controller.core.Controller; 27 import org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase; 28 29 /** 30 * Abstract class for virtual databases collectors 31 * @author <a HREF="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk</a> 32 */ 33 public abstract class AbstractVirtualDatabaseDataCollector 34 extends 35 AbstractDataCollector 36 { 37 private String virtualDatabaseName; 38 39 /** 40 * abstract collector contructor 41 * @param virtualDatabaseName to collect data from 42 */ 43 public AbstractVirtualDatabaseDataCollector(String virtualDatabaseName) 44 { 45 super(); 46 this.virtualDatabaseName = virtualDatabaseName; 47 } 48 49 /** 50 * @see org.continuent.sequoia.common.jmx.monitoring.AbstractDataCollector#collectValue() 51 */ 52 public long collectValue() throws DataCollectorException 53 { 54 VirtualDatabase vdb = ((Controller)controller).getVirtualDatabase( 55 virtualDatabaseName); 56 return this.getValue(vdb); 57 } 58 59 /** 60 * We have the database object so let's get the value we want from ot 61 * @param database as an object to allow it through RMI, but IS a <code>VirtualDatabase</code> 62 * @return the collected value 63 */ 64 public abstract long getValue(Object database); 65 66 /** 67 * @see org.continuent.sequoia.common.jmx.monitoring.AbstractDataCollector#getTargetName() 68 */ 69 public String getTargetName() 70 { 71 return virtualDatabaseName; 72 } 73 } 74