SystemPropertiesConfiguration.java
- /*
- * @copyright defined in LICENSE.txt
- */
- package hera.util.conf;
- import static hera.util.ValidationUtils.assertFalse;
- import static java.lang.System.getProperties;
- import static java.lang.System.getProperty;
- import static java.util.Collections.unmodifiableMap;
- import hera.util.Configuration;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Set;
- public class SystemPropertiesConfiguration extends AbstractConfiguration implements Configuration {
- @SuppressWarnings("unchecked")
- @Override
- public Map<String, Object> asMap() {
- final Map<?, ?> map = getProperties();
- return unmodifiableMap(new HashMap<String, Object>((Map<String, String>) map));
- }
- @Override
- public void define(final String key, final Object value) {
- throw new UnsupportedOperationException("JVM Properties could NOT be changed");
- }
- @Override
- public Configuration getSubconfiguration(final String key) {
- final String prefix = key + ".";
- final InMemoryConfiguration subconfiguration = new InMemoryConfiguration();
- Set<String> stringProperties = getProperties().stringPropertyNames();
- for (final String name : stringProperties) {
- if (name.startsWith(prefix)) {
- final String subname = name.substring(prefix.length());
- subconfiguration.define(subname, getProperty(name));
- }
- }
- return subconfiguration;
- }
- @Override
- public Object getValue(final String key) {
- assertFalse(key.contains("."));
- return getProperty(key);
- }
- @Override
- public void remove(final String key) {
- throw new UnsupportedOperationException("JVM Properties could NOT be changed");
- }
- }