cascading.util.cache
Class DirectMappedCache<Key,Value>

java.lang.Object
  extended by cascading.util.cache.DirectMappedCache<Key,Value>
All Implemented Interfaces:
CascadingCache<Key,Value>, Map<Key,Value>

public final class DirectMappedCache<Key,Value>
extends Object
implements CascadingCache<Key,Value>

DirectMappedCache is an implementation of the CascadingCache interface following the semantics of http://en.wikipedia.org/wiki/CPU_cache#Direct-mapped_cache. The Cache is backed by an array that stays constant in size.

Unlike other implementation of a Map a hash collision will lead to the entry being overwritten. The CacheEvictionCallback is called with the entry that will be overwritten.

Use this cache if the keys are arriving in a random if not uniformly distributed order in order to reduce the number of hash and equality comparisons.

If duplicate keys are clustered near each other in the incoming tuple stream, consider the LRUHashMapCache cache instead.

DirectMappedCache does not permit null keys nor null values

See Also:
Unique, AggregateBy, DirectMappedCacheFactory, LRUHashMapCacheFactory, LRUHashMapCache

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
 boolean initialized
           
 
Constructor Summary
DirectMappedCache()
           
 
Method Summary
 void clear()
           
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
 Set<Map.Entry<Key,Value>> entrySet()
           
 Value get(Object key)
           
 int getCapacity()
          Returns the capacity of this cache.
 void initialize()
          Method to initialize the Cache.
 boolean isEmpty()
           
 Set<Key> keySet()
           
 Value put(Key key, Value value)
           
 void putAll(Map<? extends Key,? extends Value> m)
           
 Value remove(Object key)
           
 void setCacheEvictionCallback(CacheEvictionCallback cacheEvictionCallback)
          Sets the CacheEvictionCallback of this Cache.
 void setCapacity(int capacity)
          Sets the capacity of the Cache.
 int size()
           
 Collection<Value> values()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

initialized

public boolean initialized
Constructor Detail

DirectMappedCache

public DirectMappedCache()
Method Detail

size

public int size()
Specified by:
size in interface Map<Key,Value>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map<Key,Value>

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Map<Key,Value>

containsValue

public boolean containsValue(Object value)
Specified by:
containsValue in interface Map<Key,Value>

get

public Value get(Object key)
Specified by:
get in interface Map<Key,Value>

put

public Value put(Key key,
                 Value value)
Specified by:
put in interface Map<Key,Value>

remove

public Value remove(Object key)
Specified by:
remove in interface Map<Key,Value>

putAll

public void putAll(Map<? extends Key,? extends Value> m)
Specified by:
putAll in interface Map<Key,Value>

clear

public void clear()
Specified by:
clear in interface Map<Key,Value>

keySet

public Set<Key> keySet()
Specified by:
keySet in interface Map<Key,Value>

values

public Collection<Value> values()
Specified by:
values in interface Map<Key,Value>

entrySet

public Set<Map.Entry<Key,Value>> entrySet()
Specified by:
entrySet in interface Map<Key,Value>

getCapacity

public int getCapacity()
Description copied from interface: CascadingCache
Returns the capacity of this cache.

Specified by:
getCapacity in interface CascadingCache<Key,Value>

setCacheEvictionCallback

public void setCacheEvictionCallback(CacheEvictionCallback cacheEvictionCallback)
Description copied from interface: CascadingCache
Sets the CacheEvictionCallback of this Cache.

Specified by:
setCacheEvictionCallback in interface CascadingCache<Key,Value>

setCapacity

public void setCapacity(int capacity)
Description copied from interface: CascadingCache
Sets the capacity of the Cache.

Specified by:
setCapacity in interface CascadingCache<Key,Value>

initialize

public void initialize()
Description copied from interface: CascadingCache
Method to initialize the Cache. Any setup should be done in here.

Specified by:
initialize in interface CascadingCache<Key,Value>


Copyright © 2007-2015 Concurrent, Inc. All Rights Reserved.