hudson.util
Class CopyOnWriteMap<K,V>

java.lang.Object
  extended by hudson.util.CopyOnWriteMap<K,V>
All Implemented Interfaces:
Map<K,V>
Direct Known Subclasses:
CopyOnWriteMap.Hash, CopyOnWriteMap.Tree

public abstract class CopyOnWriteMap<K,V>
extends Object
implements Map<K,V>

Map that has copy-on-write semantics.

This class is suitable where highly concurrent access is needed, yet the write operation is relatively uncommon.

Author:
Kohsuke Kawaguchi

Nested Class Summary
static class CopyOnWriteMap.Hash<K,V>
          CopyOnWriteMap backed by HashMap.
static class CopyOnWriteMap.Tree<K,V>
          CopyOnWriteMap backed by TreeMap.
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
protected  Map<K,V> core
           
 
Constructor Summary
protected CopyOnWriteMap()
           
protected CopyOnWriteMap(Map<K,V> core)
           
 
Method Summary
 void clear()
           
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
protected abstract  Map<K,V> copy()
           
 Set<Map.Entry<K,V>> entrySet()
          This method will return a read-only Set.
 V get(Object key)
           
 boolean isEmpty()
           
 Set<K> keySet()
          This method will return a read-only Set.
 V put(K key, V value)
           
 void putAll(Map<? extends K,? extends V> t)
           
 V remove(Object key)
           
 void replaceBy(Map<? extends K,? extends V> data)
          Atomically replaces the entire map by the copy of the specified map.
 int size()
           
protected  void update(Map<K,V> m)
           
 Collection<V> values()
          This method will return a read-only Collection.
 
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

core

protected volatile Map<K,V> core
Constructor Detail

CopyOnWriteMap

protected CopyOnWriteMap(Map<K,V> core)

CopyOnWriteMap

protected CopyOnWriteMap()
Method Detail

update

protected void update(Map<K,V> m)

replaceBy

public void replaceBy(Map<? extends K,? extends V> data)
Atomically replaces the entire map by the copy of the specified map.


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>

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>

copy

protected abstract Map<K,V> copy()

clear

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

keySet

public Set<K> keySet()
This method will return a read-only Set.

Specified by:
keySet in interface Map<K,V>

values

public Collection<V> values()
This method will return a read-only Collection.

Specified by:
values in interface Map<K,V>

entrySet

public Set<Map.Entry<K,V>> entrySet()
This method will return a read-only Set.

Specified by:
entrySet in interface Map<K,V>


Copyright © 2004-2013. All Rights Reserved.