//======================================================================== //$Id: TimeStatisticImpl.java 1195 2006-11-12 23:02:51Z janb $ //Copyright 200-2004 Mort Bay Consulting Pty. Ltd. //------------------------------------------------------------------------ //Licensed under the Apache License, Version 2.0 (the "License"); //you may not use this file except in compliance with the License. //You may obtain a copy of the License at //http://www.apache.org/licenses/LICENSE-2.0 //Unless required by applicable law or agreed to in writing, software //distributed under the License is distributed on an "AS IS" BASIS, //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //See the License for the specific language governing permissions and //limitations under the License. //======================================================================== package org.mortbay.jetty.servlet.jsr77; /** * @author janb * * To change the template for this generated type comment go to * Window - Preferences - Java - Code Generation - Code and Comments */ public class TimeStatisticImpl implements javax.management.j2ee.statistics.TimeStatistic { private static final String HOUR = "HOUR"; private static final String MICROSECOND = "MICROSECOND"; private static final String MILLISECONDS = "MILLISECONDS"; private static final String MINUTE = "MINUTE"; private static final String NANOSECOND = "NANOSECOND"; private static final String SECOND = "SECOND"; private ServletStatsImpl servletStats = null; private long count = 0; private long maxTime = 0; private long minTime = 0; private long totalTime = 0; private long startTime = 0; private long lastSampleTime = 0; private String name = null; private String description = null; private String units = null; public TimeStatisticImpl (ServletStatsImpl servletStats, String name, String description, String unit) { setServletStats(servletStats); setName (name); setDescription (description); setUnit (unit); } /** Return number of times statistic has been gathered. * @see javax.management.j2ee.statistics.TimeStatistic#getCount() */ public long getCount () { return count; } /** Return max value of statistic. * @see javax.management.j2ee.statistics.TimeStatistic#getMaxTime() */ public long getMaxTime () { return maxTime; } /** Return min value of statistic. * @see javax.management.j2ee.statistics.TimeStatistic#getMinTime() */ public long getMinTime () { return minTime; } /** Return total time of statistic * @see javax.management.j2ee.statistics.TimeStatistic#getTotalTime() */ public long getTotalTime () { return totalTime; } /** Return name of statistic * @see javax.management.j2ee.statistics.Statistic#getName() */ public String getName () { return name; } public void setName (String n) { name = n; } /** Return units of statistic * @see javax.management.j2ee.statistics.Statistic#getUnit() */ public String getUnit () { return units; } public void setUnit (String u) { units = u; } /** Human readable description of statistic * @see javax.management.j2ee.statistics.Statistic#getDescription() */ public String getDescription () { return description; } public void setDescription (String s) { description = s; } /** Get the time the statistic began to be gathered. * As milliseconds since the last epoch. * @see javax.management.j2ee.statistics.Statistic#getStartTime() */ public long getStartTime () { return startTime; } public void setStartTime () { startTime = System.currentTimeMillis(); } /** Get the time of the last sample. * As milliseconds since the epoch. * @see javax.management.j2ee.statistics.Statistic#getLastSampleTime() */ public long getLastSampleTime () { return lastSampleTime; } public void setServletStats (ServletStatsImpl stats) { servletStats = stats; } public synchronized void addSample (long sample, long time) { count ++; if (sample > maxTime) maxTime = sample; if ((sample < minTime) || (minTime == 0)) minTime = sample; lastSampleTime = time; totalTime = totalTime + sample; } public String toString () { return "Name="+getName()+ ", Description="+getDescription()+ ", Units="+getUnit()+ ", StartTime="+getStartTime()+ ", Count="+getCount()+ ", MinTime="+getMinTime()+ ", MaxTime="+getMaxTime()+ ", TotalTime="+getTotalTime()+ ", LastSampleTime="+getLastSampleTime(); } }