/* * JBoss, Home of Professional Open Source. * Copyright 2008, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jboss.management.j2ee.statistics; import javax.management.j2ee.statistics.Statistic; import java.io.Serializable; /** * JBoss Implementation of the base Model for a Statistic Information * * @author Marc Fleury * @author Scott.Stark@jboss.org * @version $Revision: 81025 $ */ public abstract class StatisticImpl implements Statistic, Serializable { // Constants ----------------------------------------------------- /** @since 4.0.2 */ private static final long serialVersionUID = -3427364348020739916L; // Attributes ---------------------------------------------------- protected String name; protected String units; protected String description; protected long startTime; protected long lastSampleTime; // Static -------------------------------------------------------- // Constructors -------------------------------------------------- /** * Create a named Statistic. * * @param name Name of the statistic * @param units Unit description used in this statistic * @param description Human description of the statistic */ public StatisticImpl(String name, String units, String description) { this.name = name; this.units = units; this.description = description; this.startTime = System.currentTimeMillis(); } // Public -------------------------------------------------------- // javax.management.j2ee.Statistics implementation --------------- public String getName() { return name; } public String getUnit() { return units; } public String getDescription() { return description; } public long getStartTime() { return startTime; } public long getLastSampleTime() { return lastSampleTime; } /** * Reset the lastSampleTime and startTime to the current time */ public void reset() { startTime = System.currentTimeMillis(); lastSampleTime = startTime; } /** * Update the lastSampleTime and startTime on first call */ public void set() { lastSampleTime = System.currentTimeMillis(); } public String toString() { StringBuffer tmp = new StringBuffer(name); tmp.append('('); tmp.append("description: "); tmp.append(description); tmp.append(", units: "); tmp.append(units); tmp.append(", startTime: "); tmp.append(startTime); tmp.append(", lastSampleTime: "); tmp.append(lastSampleTime); tmp.append(')'); return tmp.toString(); } }