package triaina.commons.collection;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import triaina.commons.exception.UnsupportedRuntimeException;
public abstract class AbstractImmutableMap<K, V> implements Map<K, V> {
private Map<K, V> mMap;
public AbstractImmutableMap(Map<K, V> map) {
mMap = map;
}
@Override
public V get(Object key) {
return mMap.get(key);
}
/**
* @hide
*/
@Override
public V put(K key, V value) {
throw new UnsupportedRuntimeException("this map is immutable");
}
/**
* @hide
*/
@Override
public void clear() {
throw new UnsupportedRuntimeException("this map is immutable");
}
@Override
public boolean containsKey(Object key) {
return mMap.containsKey(key);
}
@Override
public boolean containsValue(Object value) {
return mMap.containsValue(value);
}
/**
* @hide
*/
@Override
public Set<java.util.Map.Entry<K, V>> entrySet() {
throw new UnsupportedRuntimeException("this map is immutable");
}
@Override
public boolean isEmpty() {
return mMap.isEmpty();
}
@Override
public Set<K> keySet() {
return new ImmutableHashSet<K>(mMap.keySet());
}
/**
* @hide
*/
@Override
public void putAll(Map<? extends K, ? extends V> map) {
throw new UnsupportedRuntimeException("this map is immutable");
}
/**
* @hide
*/
@Override
public V remove(Object key) {
throw new UnsupportedRuntimeException("this map is immutable");
}
@Override
public int size() {
return mMap.size();
}
/**
* @hide
*/
@Override
public Collection<V> values() {
throw new UnsupportedRuntimeException("this map is immutable");
}
}