package com.yoursway.commons.preferences.core.layers;
import static com.google.common.collect.Maps.newHashMap;
import java.util.Map;
import java.util.Map.Entry;
public class MutablePreferenceLayer extends PreferenceLayer {
private Map<String, String> values = newHashMap();
public MutablePreferenceLayer(PreferenceLayer parent) {
values.putAll(parent.values());
}
public String get(String name) {
return values.get(name);
}
public void set(String name, String newValue) {
if (name == null)
throw new NullPointerException("name is null");
if (newValue == null)
values.remove(name);
else
values.put(name, newValue);
}
public void update(Map<String, String> changes) {
for (Entry<String, String> change : changes.entrySet())
set(change.getKey(), change.getValue());
}
Map<String, String> values() {
return values;
}
@Override
public boolean isMutable() {
return true;
}
}