BUG-4158: Introduce Modifiable/UnmodifiableMapPhase
Our code frequently uses an access pattern, where we create a modifiable
map, then turn it into an unmodifiable one and then we want to create a
modifiable map containing all the mappings in the unmodifiable one (and
then turn it again into unodifiable).
This patch introduces interfaces which mark the modifiable/unmodifiable
phases of such mapping. They also define the interface contract
implementation must follow to be usable with this usabe pattern.
Change-Id: I08b3077739a3df89e57c54a6937744f2394701bc
Signed-off-by: Robert Varga <rovarga@cisco.com>