package ini.trakem2.utils;
import java.util.HashMap;
import java.util.Map;
/**
* An extended {@link HashMap} that throws {@link UnsupportedOperationException}
* for calls to {@link HashMap#get(Object)}, {@link HashMap#remove(Object)},
* {@link HashMap#containsKey(Object)} and {@link HashMap#containsValue(Object)}.
* This class offers versions of these four methods but requiring typed arguments.
*
* @author Albert Cardona
*
* @param <K>
* @param <V>
*/
public class TypedHashMap<K,V> extends HashMap<K,V>
{
private static final long serialVersionUID = -7817318751687157665L;
public TypedHashMap() {
super();
}
public TypedHashMap(final int initialCapacity) {
super(initialCapacity);
}
public TypedHashMap(final Map<? extends K, ? extends V> map) {
super(map);
}
public TypedHashMap(final int initialCapacity, final float loadFactor) {
super(initialCapacity, loadFactor);
}
/** Typed version of {@link HashMap#get(Object)}. */
public V getValue(final K key) {
return super.get(key);
}
/**
* @throws UnsupportedOperationException
*/
@Override
public V get(final Object key) {
throw new UnsupportedOperationException();
}
/** Typed version of {@link HashMap#remove(Object)}. */
public V removeEntry(final K key) {
return super.remove(key);
}
/**
* @throws UnsupportedOperationException
*/
@Override
public V remove(final Object key) {
throw new UnsupportedOperationException();
}
/** Typed version of {@link HashMap#containsKey(Object)}. */
public boolean hasKey(final K key) {
return super.containsKey(key);
}
/**
* @throws UnsupportedOperationException
*/
@Override
public boolean containsKey(final Object key) {
throw new UnsupportedOperationException();
}
/** Typed version of {@link HashMap#containsValue(Object)}. */
public boolean hasValue(final V value) {
return super.containsValue(value);
}
/**
* @throws UnsupportedOperationException
*/
@Override
public boolean containsValue(final Object value) {
throw new UnsupportedOperationException();
}
}