View Javadoc
1   /*
2    * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package sun.jvmstat.monitor;
27  
28  /**
29   * Interface provided by Instrumentation Monitoring Objects.
30   *
31   * @author Brian Doherty
32   * @since 1.5
33   */
34  public interface Monitor  {
35  
36      /**
37       * Returns the name of this instrumentation object.
38       *
39       * @return String - the name assigned to this instrumentation monitoring
40       *                  object
41       */
42      String getName();
43  
44      /**
45       * Returns the base name of this instrumentation object.
46       * The base name is the component of the name following the last
47       * "." character in the name.
48       *
49       * @return String - the base name of the name assigned to this
50       *                  instrumentation monitoring object.
51       */
52      String getBaseName();
53  
54      /**
55       * Returns the Units for this instrumentation monitoring object.
56       *
57       * @return Units - the units of measure attribute
58       */
59      Units getUnits();
60  
61      /**
62       * Returns the Variability for this instrumentation object.
63       *
64       *@return Variability - the variability attribute
65       */
66      Variability getVariability();
67  
68      /**
69       * Test if the instrumentation object is a vector type.
70       *
71       * @return boolean - true if this instrumentation object is a vector type,
72       *                   false otherwise.
73       */
74      boolean isVector();
75  
76      /**
77       * Return the length of the vector.
78       * @return int - the length of the vector or zero if this instrumentation
79       *               object is a scalar type.
80       */
81      int getVectorLength();
82  
83      /**
84       * Test if the instrumentation object is supported.
85       */
86      boolean isSupported();
87  
88      /**
89       * Return an Object that encapsulates this instrumentation object's
90       * current data value.
91       */
92      Object getValue();
93  }