Link two Maps instances in a parent-child relation. Meaning that if a key is looked up but not found on the child, then the key will be looked up on the parent map.
The raison d'etre of this class is to the {@link #keySet()} method. This methods returns a set of
all the keys contained in the child and the parent.That's the main reason to not used the {@link java.util.Properties} class (which offers access to child keys only).
The child has an immutable view of the parent map. Methods {@link #clear()} and {@link #remove(Object)}throw {@link UnsupportedOperationException}. Methods {@link #put(Object,Object)} and {@link #putAll(java.util.Map)} impacts only the child map.
Methods {@link #clearLocally(Object)}
This class does NOT implement the {@link java.util.Map} interface because methods {@link java.util.Map#entrySet()} },{@link java.util.Map#values()} and {@link java.util.Map#keySet()} would NOT be backed by the Map itself.
Contributions welcome to implement that part.
@author
Alexis Midon