@Override public int hashCode() { int result = super.hashCode(); result = 31 * result + getKey().hashCode(); result = 31 * result + getValue().hashCode(); long cost = getCost(); long creationTime = getCreationTime(); long expirationTime = getExpirationTime(); long hits = getHits(); long lastAccessTime = getLastAccessTime(); long lastStoredTime = getLastStoredTime(); long lastUpdateTime = getLastUpdateTime(); long version = getVersion(); long ttl = getTtl(); result = 31 * result + (int) (cost ^ (cost >>> 32)); result = 31 * result + (int) (creationTime ^ (creationTime >>> 32)); result = 31 * result + (int) (expirationTime ^ (expirationTime >>> 32)); result = 31 * result + (int) (hits ^ (hits >>> 32)); result = 31 * result + (int) (lastAccessTime ^ (lastAccessTime >>> 32)); result = 31 * result + (int) (lastStoredTime ^ (lastStoredTime >>> 32)); result = 31 * result + (int) (lastUpdateTime ^ (lastUpdateTime >>> 32)); result = 31 * result + (int) (version ^ (version >>> 32)); result = 31 * result + (int) (ttl ^ (ttl >>> 32)); return result; }
@Override public int hashCode() { int result = super.hashCode(); result = 31 * result + getKey().hashCode(); result = 31 * result + getValue().hashCode(); long cost = getCost(); long creationTime = getCreationTime(); long expirationTime = getExpirationTime(); long hits = getHits(); long lastAccessTime = getLastAccessTime(); long lastStoredTime = getLastStoredTime(); long lastUpdateTime = getLastUpdateTime(); long version = getVersion(); long ttl = getTtl(); result = 31 * result + (int) (cost ^ (cost >>> 32)); result = 31 * result + (int) (creationTime ^ (creationTime >>> 32)); result = 31 * result + (int) (expirationTime ^ (expirationTime >>> 32)); result = 31 * result + (int) (hits ^ (hits >>> 32)); result = 31 * result + (int) (lastAccessTime ^ (lastAccessTime >>> 32)); result = 31 * result + (int) (lastStoredTime ^ (lastStoredTime >>> 32)); result = 31 * result + (int) (lastUpdateTime ^ (lastUpdateTime >>> 32)); result = 31 * result + (int) (version ^ (version >>> 32)); result = 31 * result + (int) (ttl ^ (ttl >>> 32)); return result; }
protected <E extends SamplingEntry> E createSamplingEntry(K key, V value) { return (E) new SamplingEntry(key, value); }
protected <E extends SamplingEntry> E createSamplingEntry(K key, V value) { return (E) new SamplingEntry(key, value); }
/** * It works on best effort basis. If multi-threaded calls involved it may evict all elements, but it's unlikely. */ private void evictMap(SampleableConcurrentHashMap<?, ?> map, int triggeringEvictionSize, int afterEvictionSize) { map.purgeStaleEntries(); int mapSize = map.size(); if (mapSize - triggeringEvictionSize >= 0) { for (SampleableConcurrentHashMap.SamplingEntry entry : map.getRandomSamples(mapSize - afterEvictionSize)) { map.remove(entry.getEntryKey()); } } }
/** * It works on best effort basis. If multi-threaded calls involved it may evict all elements, but it's unlikely. */ private void evictMap(SampleableConcurrentHashMap<?, ?> map, int triggeringEvictionSize, int afterEvictionSize) { map.purgeStaleEntries(); int mapSize = map.size(); if (mapSize - triggeringEvictionSize >= 0) { for (SampleableConcurrentHashMap.SamplingEntry entry : map.getRandomSamples(mapSize - afterEvictionSize)) { map.remove(entry.getEntryKey()); } } }