package org.stagemonitor.configuration.source; import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; /** * A map based configuration source */ public class SimpleSource extends AbstractConfigurationSource { public static final String NAME = "Transient Configuration Source"; private final ConcurrentMap<String, String> config = new ConcurrentHashMap<String, String>(); private final String name; public SimpleSource() { this(NAME); } public SimpleSource(String name) { this.name = name; } public static SimpleSource forTest(String key, String value) { final SimpleSource simpleConfig = new SimpleSource("Test Configuration Source"); simpleConfig.add(key, value); return simpleConfig; } @Override public String getValue(String key) { return config.get(key); } @Override public String getName() { return name; } @Override public boolean isSavingPossible() { return true; } @Override public void save(String key, String value) throws IOException { config.put(key, value); } public SimpleSource add(String key, String value) { config.put(key, value); return this; } }