package net.sf.appstatus.services; public class CachedCallStatistics { private CallStatistics direct; private CallStatistics cache; public CachedCallStatistics(int minMaxDelay) { direct = new CallStatistics(minMaxDelay); cache = new CallStatistics(minMaxDelay); } public void addCall(Long executionTime, boolean cacheHit, boolean failure, boolean error, int nestedCalls) { // Update statistics if (cacheHit) { cache.addCall(executionTime, failure, error, nestedCalls); } else { direct.addCall(executionTime, failure, error, nestedCalls); } } public CallStatistics getCacheStatistics() { return cache; } public CallStatistics getDirectStatistics() { return direct; } public long getFailures() { return direct.getFailures() + cache.getFailures(); } public long getErrors() { return direct.getErrors() + cache.getErrors(); } public long getTotalHits() { return direct.getHits() + cache.getHits(); } }