org.infinispan.container
Class DefaultDataContainer

java.lang.Object
  extended by org.infinispan.container.DefaultDataContainer
All Implemented Interfaces:
Iterable<InternalCacheEntry>, DataContainer

@ThreadSafe
public class DefaultDataContainer
extends Object
implements DataContainer

DefaultDataContainer is both eviction and non-eviction based data container.

Since:
4.0
Author:
Manik Surtani, Galder ZamarreƱo, Vladimir Blagojevic, Trustin Lee

Nested Class Summary
static class DefaultDataContainer.EntryIterator
           
 
Constructor Summary
protected DefaultDataContainer(int concurrencyLevel)
           
protected DefaultDataContainer(int concurrencyLevel, int maxEntries, EvictionStrategy strategy, EvictionThreadPolicy policy)
           
 
Method Summary
static DataContainer boundedDataContainer(int concurrencyLevel, int maxEntries, EvictionStrategy strategy, EvictionThreadPolicy policy)
           
 void clear()
          Removes all entries in the container
 boolean containsKey(Object k)
          Tests whether an entry exists in the container
 Set<InternalCacheEntry> entrySet()
          Returns a mutable set of immutable cache entries exposed as immutable Map.Entry instances.
 InternalCacheEntry get(Object k)
          Retrieves a cached entry
 void initialize(EvictionManager evictionManager, PassivationManager passivator)
           
 Iterator<InternalCacheEntry> iterator()
           
 Set<Object> keySet()
          Returns a set of keys in the container.
 InternalCacheEntry peek(Object key)
          Retrieves a cache entry in the same way as DataContainer.get(Object)} except that it does not update or reorder any of the internal constructs.
 void purgeExpired()
          Purges entries that have passed their expiry time
 void put(Object k, Object v, long lifespan, long maxIdle)
          Puts an entry in the cache along with a lifespan and a maxIdle time
 InternalCacheEntry remove(Object k)
          Removes an entry from the cache
 int size()
           
static DataContainer unBoundedDataContainer(int concurrencyLevel)
           
 Collection<Object> values()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultDataContainer

protected DefaultDataContainer(int concurrencyLevel)

DefaultDataContainer

protected DefaultDataContainer(int concurrencyLevel,
                               int maxEntries,
                               EvictionStrategy strategy,
                               EvictionThreadPolicy policy)
Method Detail

initialize

public void initialize(EvictionManager evictionManager,
                       PassivationManager passivator)

boundedDataContainer

public static DataContainer boundedDataContainer(int concurrencyLevel,
                                                 int maxEntries,
                                                 EvictionStrategy strategy,
                                                 EvictionThreadPolicy policy)

unBoundedDataContainer

public static DataContainer unBoundedDataContainer(int concurrencyLevel)

peek

public InternalCacheEntry peek(Object key)
Description copied from interface: DataContainer
Retrieves a cache entry in the same way as DataContainer.get(Object)} except that it does not update or reorder any of the internal constructs. I.e., expiration does not happen, and in the case of the LRU container, the entry is not moved to the end of the chain. This method should be used instead of DataContainer.get(Object)} when called while iterating through the data container using methods like DataContainer.keySet() to avoid changing the underlying collection's order.

Specified by:
peek in interface DataContainer
Parameters:
key - key under which entry is stored
Returns:
entry, if it exists, or null if not

get

public InternalCacheEntry get(Object k)
Description copied from interface: DataContainer
Retrieves a cached entry

Specified by:
get in interface DataContainer
Parameters:
k - key under which entry is stored
Returns:
entry, if it exists and has not expired, or null if not

put

public void put(Object k,
                Object v,
                long lifespan,
                long maxIdle)
Description copied from interface: DataContainer
Puts an entry in the cache along with a lifespan and a maxIdle time

Specified by:
put in interface DataContainer
Parameters:
k - key under which to store entry
v - value to store
lifespan - lifespan in milliseconds. -1 means immortal.
maxIdle - max idle time for which to store entry. -1 means forever.

containsKey

public boolean containsKey(Object k)
Description copied from interface: DataContainer
Tests whether an entry exists in the container

Specified by:
containsKey in interface DataContainer
Parameters:
k - key to test
Returns:
true if entry exists and has not expired; false otherwise

remove

public InternalCacheEntry remove(Object k)
Description copied from interface: DataContainer
Removes an entry from the cache

Specified by:
remove in interface DataContainer
Parameters:
k - key to remove
Returns:
entry removed, or null if it didn't exist or had expired

size

public int size()
Specified by:
size in interface DataContainer
Returns:
count of the number of entries in the container

clear

public void clear()
Description copied from interface: DataContainer
Removes all entries in the container

Specified by:
clear in interface DataContainer

keySet

public Set<Object> keySet()
Description copied from interface: DataContainer
Returns a set of keys in the container. When iterating through the container using this method, clients should never call #get() method but instead #peek(), in order to avoid changing the order of the underlying collection as a side of effect of iterating through it.

Specified by:
keySet in interface DataContainer
Returns:
a set of keys

values

public Collection<Object> values()
Specified by:
values in interface DataContainer
Returns:
a set of values contained in the container

entrySet

public Set<InternalCacheEntry> entrySet()
Description copied from interface: DataContainer
Returns a mutable set of immutable cache entries exposed as immutable Map.Entry instances. Clients of this method such as Cache.entrySet() operation implementors are free to convert the set into an immutable set if needed, which is the most common use case. If a client needs to iterate through a mutable set of mutable cache entries, it should iterate the container itself rather than iterating through the return of entrySet().

Specified by:
entrySet in interface DataContainer
Returns:
a set of immutable cache entries

purgeExpired

public void purgeExpired()
Description copied from interface: DataContainer
Purges entries that have passed their expiry time

Specified by:
purgeExpired in interface DataContainer

iterator

public Iterator<InternalCacheEntry> iterator()
Specified by:
iterator in interface Iterable<InternalCacheEntry>

-->

Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.