
nablarch.core.util.map.ExclusiveAccessMap Maven / Gradle / Ivy
package nablarch.core.util.map;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.locks.ReentrantLock;
/**
* 与えられたMapに対する自動排他制御を実装するラッパークラス。
* アクセサを使用した時点で排他ロックを自動的に取得する。
* @param キーの型
* @param 値の型
*
* @author Iwauo Tajima
*/
public class ExclusiveAccessMap extends LockableMap {
/**
* コンストラクタ。
* @param baseMap ラップ対象のMap
*/
public ExclusiveAccessMap(Map baseMap) {
super(baseMap);
}
/**
* コンストラクタ
* @param baseMap ラップ対象のMap
* @param lock ロックオブジェクト
*/
public ExclusiveAccessMap(Map baseMap, ReentrantLock lock) {
super(baseMap, lock);
}
/** {@inheritDoc} */
public void clear() {
lock();
super.clear();
}
/** {@inheritDoc} */
public boolean containsKey(Object key) {
lock();
return super.containsKey(key);
}
/** {@inheritDoc} */
public boolean containsValue(Object value) {
lock();
return super.containsValue(value);
}
/** {@inheritDoc} */
public Set> entrySet() {
lock();
return super.entrySet();
}
/** {@inheritDoc} */
public V get(Object key) {
lock();
return super.get(key);
}
/** {@inheritDoc} */
public boolean isEmpty() {
lock();
return super.isEmpty();
}
/** {@inheritDoc} */
public Set keySet() {
lock();
return super.keySet();
}
/** {@inheritDoc} */
public V put(K key, V value) {
lock();
return super.put(key, value);
}
/** {@inheritDoc} */
public void putAll(Map extends K, ? extends V> m) {
lock();
super.putAll(m);
}
/** {@inheritDoc} */
public V remove(Object key) {
lock();
return super.remove(key);
}
/** {@inheritDoc} */
public int size() {
lock();
return super.size();
}
/** {@inheritDoc} */
public Collection values() {
lock();
return super.values();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy