001 /** 002 * 003 * Copyright 2004 Protique Ltd 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 * 017 **/ 018 package org.activemq.management; 019 020 import javax.management.j2ee.statistics.Statistic; 021 /** 022 * Base class for a Statistic implementation 023 * 024 * @version $Revision: 1.1.1.1 $ 025 */ 026 public class StatisticImpl implements Statistic, Resettable { 027 private String name; 028 private String unit; 029 private String description; 030 private long startTime; 031 private long lastSampleTime; 032 033 public StatisticImpl(String name, String unit, String description) { 034 this.name = name; 035 this.unit = unit; 036 this.description = description; 037 startTime = System.currentTimeMillis(); 038 lastSampleTime = startTime; 039 } 040 041 public synchronized void reset() { 042 startTime = System.currentTimeMillis(); 043 lastSampleTime = startTime; 044 } 045 046 protected synchronized void updateSampleTime() { 047 lastSampleTime = System.currentTimeMillis(); 048 } 049 050 public synchronized String toString() { 051 StringBuffer buffer = new StringBuffer(); 052 buffer.append(name); 053 buffer.append("{"); 054 appendFieldDescription(buffer); 055 buffer.append(" }"); 056 return buffer.toString(); 057 } 058 059 public String getName() { 060 return name; 061 } 062 063 public String getUnit() { 064 return unit; 065 } 066 067 public String getDescription() { 068 return description; 069 } 070 071 public synchronized long getStartTime() { 072 return startTime; 073 } 074 075 public synchronized long getLastSampleTime() { 076 return lastSampleTime; 077 } 078 079 protected synchronized void appendFieldDescription(StringBuffer buffer) { 080 buffer.append(" unit: "); 081 buffer.append(unit); 082 buffer.append(" startTime: "); 083 //buffer.append(new Date(startTime)); 084 buffer.append(startTime); 085 buffer.append(" lastSampleTime: "); 086 //buffer.append(new Date(lastSampleTime)); 087 buffer.append(lastSampleTime); 088 buffer.append(" description: "); 089 buffer.append(description); 090 } 091 }