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 }