package com.sonycsl.wamp.util;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class DoubleKeyMap<K1, K2, V> {
private Map<K1, Map<K2, V>> mKkvMap = new ConcurrentHashMap<K1, Map<K2, V>>();
public V put(K1 key1, K2 key2, V value) {
Map<K2, V> kv = mKkvMap.get(key1);
if (kv == null) {
kv = new ConcurrentHashMap<K2, V>();
mKkvMap.put(key1, kv);
}
return kv.put(key2, value);
}
public V get(K1 key1, K2 key2) {
Map<K2, V> kv = mKkvMap.get(key1);
if (kv == null) {
return null;
}
return kv.get(key2);
}
public V remove(K1 key1, K2 key2) {
Map<K2, V> kv = mKkvMap.get(key1);
if (kv == null) {
return null;
}
return kv.remove(key2);
}
public boolean containsKey(K1 key1, K2 key2) {
Map<K2, V> kv = mKkvMap.get(key1);
if (kv == null) {
return false;
}
return kv.containsKey(key2);
}
public void clear() {
for (K1 key1 : mKkvMap.keySet()) {
Map<K2, V> kv = mKkvMap.get(key1);
if (kv != null) {
kv.clear();
}
}
mKkvMap.clear();
}
}