package org.radargun.service; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Map; import net.sf.ehcache.Ehcache; import org.radargun.traits.CacheInformation; /** * @author Radim Vansa <rvansa@redhat.com> */ public class EHCacheInfo implements CacheInformation { protected final EHCacheService service; public EHCacheInfo(EHCacheService service) { this.service = service; } @Override public String getDefaultCacheName() { return service.cacheName; } @Override public Collection<String> getCacheNames() { return Arrays.asList(service.manager.getCacheNames()); } @Override public Cache getCache(String cacheName) { return new Cache(service.getCache(cacheName)); } protected class Cache implements CacheInformation.Cache { private final Ehcache cache; public Cache(Ehcache cache) { this.cache = cache; } @Override public long getOwnedSize() { return cache.getSize(); } @Override public long getLocallyStoredSize() { return cache.getSize(); } @Override public long getMemoryStoredSize() { return cache.getSize(); } @Override public long getTotalSize() { return -1; } @Override public Map<?, Long> getStructuredSize() { return Collections.singletonMap(cache.getName(), getLocallyStoredSize()); } @Override public int getNumReplicas() { return -1; } @Override public int getEntryOverhead() { return -1; } } }