From 1c21ab92804f720f9621597f78013afd4430934a Mon Sep 17 00:00:00 2001 From: Tim Van Wassenhove Date: Sun, 28 Feb 2016 09:22:38 +0100 Subject: [PATCH] Simple implementation to turn a Config into a java.util.Properties --- .../src/main/java/com/typesafe/config/Config.java | 8 ++++++++ .../java/com/typesafe/config/impl/SimpleConfig.java | 13 ++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/config/src/main/java/com/typesafe/config/Config.java b/config/src/main/java/com/typesafe/config/Config.java index 68031861..0654c9d8 100644 --- a/config/src/main/java/com/typesafe/config/Config.java +++ b/config/src/main/java/com/typesafe/config/Config.java @@ -6,6 +6,7 @@ package com.typesafe.config; import java.time.Duration; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -1061,4 +1062,11 @@ public interface Config extends ConfigMergeable { * @return the new instance with the new map entry */ Config withValue(String path, ConfigValue value); + + /** + * Returns a {@code java.util.Properties} object for each entry in this Config instance. + * + * @return a new Properties instance + */ + Properties toProperties(); } diff --git a/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java b/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java index 2d76efb6..fbdc3397 100644 --- a/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java +++ b/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java @@ -15,8 +15,8 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Properties; import java.util.concurrent.TimeUnit; - import com.typesafe.config.Config; import com.typesafe.config.ConfigException; import com.typesafe.config.ConfigList; @@ -1009,6 +1009,17 @@ final class SimpleConfig implements Config, MergeableValue, Serializable { return new SimpleConfig(root().withValue(path, v)); } + @Override + public Properties toProperties() { + Properties properties = new Properties(); + for(Map.Entry entry : entrySet()) { + String key = entry.getKey(); + String value = entry.getValue().unwrapped().toString(); + properties.setProperty(key, value); + } + return properties; + } + SimpleConfig atKey(ConfigOrigin origin, String key) { return root().atKey(origin, key); }