org.infinispan.atomic
Class AtomicHashMap<K,V>

java.lang.Object
  extended by org.infinispan.atomic.AtomicHashMap<K,V>
Type Parameters:
K - the type of keys maintained by this map
V - the type of mapped values
All Implemented Interfaces:
Cloneable, Map<K,V>, AtomicMap<K,V>, DeltaAware

@NotThreadSafe
public class AtomicHashMap<K,V>
extends Object
implements AtomicMap<K,V>, DeltaAware, Cloneable

The default implementation of AtomicMap. Note that this map cannot be constructed directly, and callers should obtain references to AtomicHashMaps via the AtomicMapLookup helper. This helper will ensure proper concurrent construction and registration of AtomicMaps in Infinispan's data container. E.g.:

AtomicMap<String, Integer> map = AtomicMapLookup.getAtomicMap(cache, "my_atomic_map_key");

Note that for replication to work properly, AtomicHashMap updates must always take place within the scope of an ongoing JTA transaction or batch (see Cache.startBatch()).

Since:
4.0
Author:
(various)
See Also:
AtomicMap, AtomicMapLookup

Nested Class Summary
static class AtomicHashMap.Externalizer
           
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Constructor Summary
AtomicHashMap()
           
AtomicHashMap(boolean isCopy)
           
 
Method Summary
 void clear()
           
 void commit()
          Indicate that all deltas collected to date has been extracted (via a call to DeltaAware.delta()) and can be discarded.
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
 AtomicHashMap copyForWrite()
           
 Delta delta()
          Extracts changes made to implementations, in an efficient format that can easily and cheaply be serialized and deserialized.
 Set<Map.Entry<K,V>> entrySet()
           
 V get(Object key)
           
 void initForWriting()
          Initializes the delta instance to start recording changes.
 boolean isEmpty()
           
 Set<K> keySet()
           
static AtomicHashMap newInstance(Cache cache, Object cacheKey)
          Construction only allowed through this factory method.
 V put(K key, V value)
           
 void putAll(Map<? extends K,? extends V> t)
           
 V remove(Object key)
           
 int size()
           
 String toString()
           
 Collection<V> values()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

AtomicHashMap

public AtomicHashMap()

AtomicHashMap

public AtomicHashMap(boolean isCopy)
Method Detail

newInstance

public static AtomicHashMap newInstance(Cache cache,
                                        Object cacheKey)
Construction only allowed through this factory method. This factory is intended for use internally by the CacheDelegate. User code should use AtomicMapLookup.getAtomicMap(Cache, Object).


commit

public void commit()
Description copied from interface: DeltaAware
Indicate that all deltas collected to date has been extracted (via a call to DeltaAware.delta()) and can be discarded. Often used as an optimization if the delta isn't really needed, but the cleaning and resetting of internal state is desirable.

Specified by:
commit in interface DeltaAware

size

public int size()
Specified by:
size in interface Map<K,V>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map<K,V>

containsKey

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

containsValue

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

get

public V get(Object key)
Specified by:
get in interface Map<K,V>

keySet

public Set<K> keySet()
Specified by:
keySet in interface Map<K,V>

values

public Collection<V> values()
Specified by:
values in interface Map<K,V>

entrySet

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

put

public V put(K key,
             V value)
Specified by:
put in interface Map<K,V>

remove

public V remove(Object key)
Specified by:
remove in interface Map<K,V>

putAll

public void putAll(Map<? extends K,? extends V> t)
Specified by:
putAll in interface Map<K,V>

clear

public void clear()
Specified by:
clear in interface Map<K,V>

delta

public Delta delta()
Description copied from interface: DeltaAware
Extracts changes made to implementations, in an efficient format that can easily and cheaply be serialized and deserialized. This method will only be called once for each changeset as it is assumed that any implementation's internal changelog is wiped and reset after generating and submitting the delta to the caller.

Specified by:
delta in interface DeltaAware
Returns:
an instance of Delta

copyForWrite

public AtomicHashMap copyForWrite()

toString

public String toString()
Overrides:
toString in class Object

initForWriting

public void initForWriting()
Initializes the delta instance to start recording changes.


Google Analytics

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