package rewards.internal.monitor.jamon; import java.util.Date; import rewards.internal.monitor.GlobalMonitorStatistics; import rewards.internal.monitor.Monitor; import rewards.internal.monitor.MonitorFactory; import com.jamonapi.MonitorComposite; public class JamonMonitorFactory implements MonitorFactory, GlobalMonitorStatistics { private com.jamonapi.MonitorFactoryInterface monitorFactory = com.jamonapi.MonitorFactory.getFactory(); public Monitor start(String name) { JamonMonitor monitor = new JamonMonitor(monitorFactory.start(name)); return monitor; } public long getCallsCount() { return (long) getMonitors().getHits(); } public long getTotalCallTime() { return (long) getMonitors().getTotal(); } public Date getLastAccessTime() { return getMonitors().getLastAccess(); } public MonitorComposite getMonitors() { return monitorFactory.getRootMonitor(); } public long averageCallTime(String methodName) { return (long) monitorFactory.getMonitor(methodName, "ms.").getAvg(); } public long callCount(String methodName) { return (long) monitorFactory.getMonitor(methodName, "ms.").getHits(); } public long lastCallTime(String methodName) { return (long) monitorFactory.getMonitor(methodName, "ms.").getLastValue(); } public long maximumCallTime(String methodName) { return (long) monitorFactory.getMonitor(methodName, "ms.").getMax(); } public long minimumCallTime(String methodName) { return (long) monitorFactory.getMonitor(methodName, "ms.").getMin(); } public long totalCallTime(String methodName) { return (long) monitorFactory.getMonitor(methodName, "ms.").getTotal(); } }