/* * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package com.sun.tools.visualvm.tools.jvmstat; import com.sun.tools.visualvm.core.model.Model; import java.util.List; /** * This class uses Jvmstat technology * (http://java.sun.com/performance/jvmstat/) * to obtatin various information from JVM. Note that * Jvmstat is available in JDK 1.4.2 and up. It is also available for * remote Java applications if * <a href=http://download.oracle.com/javase/1.5.0/docs/tooldocs/share/jstatd.html>jstatd daemon</a> * is running on remote host. * * @author Tomas Hurka */ public abstract class JvmstatModel extends Model { /** * * Find a named counter exported via Jvmstat. * * This method will look for the named counter exported * via Jvmstat. If a counter with a given name exists, a * string value of such counter is returned. Otherwise, * the method returns <CODE>null</CODE>. * @param name the name of the counter to find. * @return the string value of the counter, or <CODE>null</CODE> * if the named counter doesn't exist. */ public abstract String findByName(String name); /** * * Find a named counter exported via Jvmstat. * * This method will look for the named counter exported * via Jvmstat. If a counter with a given name exists, a * {@link MonitoredValue} interface to that counter will * be return. Otherwise, the method returns <CODE>null</CODE>. * @param name the name of the counter to find. * @return the {@link MonitoredValue} that can be used to * monitor the the named counter, or <CODE>null</CODE> * if the named counter doesn't exist. */ public abstract MonitoredValue findMonitoredValueByName(String name); /** * * Find a list of the named counters exported via Jvmstat. * * This method will look for the named counters with * names matching the given pattern. This method returns a * {@link List} of string values of the counters such that * the name of each counter matches the given pattern. * @param pattern a string containing a pattern as described in * {@link java.util.regex.Pattern}. * @return a List of string values of the matching counters. */ public abstract List<String> findByPattern(String pattern); /** * Gets this connection's ID which identifies a target Java Virtual Machine. For a * given Java Virtual Machine, connection ID is unique id * which does not change during the lifetime of the * Java Virtual Machine. * * @return the unique ID of a target Java Virtual Machine. * @since VisualVM 1.2 */ public abstract String getConnectionId(); /** * Find a list of the named counters exported via Jvmstat. * * This method will look for the named counters with * names matching the given pattern. This method returns a * {@link List} of {@link MonitoredValue} of the counters such that * the name of each counter matches the given pattern. * @param pattern a string containing a pattern as described in * {@link java.util.regex.Pattern}. * @return a List of {@link MonitoredValue} of the matching counters. */ public abstract List<MonitoredValue> findMonitoredValueByPattern(String pattern); /** * * adds {@link JvmstatListener} * @param l a implementation of {@link JvmstatListener} */ public abstract void addJvmstatListener(JvmstatListener l); /** * * removes {@link JvmstatListener} * @param l a implementation of {@link JvmstatListener} */ public abstract void removeJvmstatListener(JvmstatListener l); }