A {@linkplain Collections#checkedMap checked} and {@linkplain Collections#synchronizedMap synchronized} {@link java.util.Map}. Type checks are performed at run-time in addition of compile-time checks. The synchronization lock can be modified at runtime by overriding the {@link #getLock} method.
This class is similar to using the wrappers provided in {@link Collections}, minus the cost of indirection levels and with the addition of overrideable methods.
@todo Current implementation do not synchronize the {@linkplain #entrySet entry set}, {@linkplain #keySet key set} and {@linkplain #values values} collection.
@param < K> The type of keys in the map.
@param < V> The type of values in the map.
@since 2.1
@source $URL$
@version $Id$
@author Jody Garnett (Refractions Research)
@author Martin Desruisseaux (IRD)
@see Collections#checkedMap
@see Collections#synchronizedMap