package com.neverwinterdp.demandspike.client; import java.util.HashMap; import java.util.Map; public class Monitor { private Map<String, MethodMonitor> monitors = new HashMap<String, MethodMonitor>() ; public int count() { int count = 0; for(MethodMonitor sel : monitors.values()) count += sel.getCount() ; return count ; } public int responseCount() { int responseCount = 0; for(MethodMonitor sel : monitors.values()) responseCount += sel.getResponseCount() ; return responseCount ; } public int clientLimitTimeoutCount() { int timeoutCount = 0; for(MethodMonitor sel : monitors.values()) timeoutCount += sel.getClientLimitTimeoutCount() ; return timeoutCount ; } public int closeChannelExceptionCount() { int count = 0; for(MethodMonitor sel : monitors.values()) count += sel.getCloseChannelExceptionCount() ; return count ; } public int timeoutCount() { int timeoutCount = 0; for(MethodMonitor sel : monitors.values()) timeoutCount += sel.getTimeoutExceptionCount() ; return timeoutCount ; } public MethodMonitor getMethodMonitor(String name) { MethodMonitor monitor = monitors.get(name) ; if(monitor == null) { monitor = new MethodMonitor(name) ; monitors.put(name, monitor) ; } return monitor ; } public MethodMonitor[] getRequestMonitors() { MethodMonitor[] array = new MethodMonitor[monitors.size()] ; monitors.values().toArray(array) ; return array ; } public void setRequestMonitors(MethodMonitor[] array) { for(MethodMonitor sel : array) { monitors.put(sel.getMethod(), sel); } } static Monitor merge(Monitor ... monitor) { Monitor newMonitor = new Monitor() ; //TODO: do the merge return newMonitor ; } }