View Javadoc

    1   /***
    2    *
    3    * Copyright 2004 Protique Ltd
    4    *
    5    * Licensed under the Apache License, Version 2.0 (the "License");
    6    * you may not use this file except in compliance with the License.
    7    * You may obtain a copy of the License at
    8    *
    9    * http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   *
    17   **/
    18  package org.codehaus.activemq.management;
    19
    20  import javax.management.j2ee.statistics.RangeStatistic;
    21
    22  /***
    23   * A range statistic implementation
    24   *
    25   * @version $Revision: 1.1 $
    26   */
    27  public class RangeStatisticImpl extends StatisticImpl implements RangeStatistic {
    28      private long highWaterMark;
    29      private long lowWaterMark;
    30      private long current;
    31
    32      public RangeStatisticImpl(String name, String unit, String description) {
    33          super(name, unit, description);
    34      }
    35
    36      public void reset() {
    37          super.reset();
    38          current = 0;
    39          lowWaterMark = 0;
    40          highWaterMark = 0;
    41      }
    42
    43      public long getHighWaterMark() {
    44          return highWaterMark;
    45      }
    46
    47      public long getLowWaterMark() {
    48          return lowWaterMark;
    49      }
    50
    51      public long getCurrent() {
    52          return current;
    53      }
    54
    55      public void setCurrent(long current) {
    56          this.current = current;
    57          if (current > highWaterMark) {
    58              highWaterMark = current;
    59          }
    60          if (current < lowWaterMark || lowWaterMark == 0) {
    61              lowWaterMark = current;
    62          }
    63          updateSampleTime();
    64      }
    65
    66      protected void appendFieldDescription(StringBuffer buffer) {
    67          buffer.append(" current: ");
    68          buffer.append(Long.toString(current));
    69          buffer.append(" lowWaterMark: ");
    70          buffer.append(Long.toString(lowWaterMark));
    71          buffer.append(" highWaterMark: ");
    72          buffer.append(Long.toString(highWaterMark));
    73          super.appendFieldDescription(buffer);
    74      }
    75  }