From 529b3b1f555545ee019a4bdafeaf9c209fd8aac8 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Fri, 11 Nov 2011 17:28:00 -0500 Subject: [PATCH] completely drop "transformer" arg to ConfigObject constructors If you want to change the transformer, use the transformed() method. --- .../config/impl/AbstractConfigObject.java | 11 ++++++---- .../config/impl/ConfigDelayedMergeObject.java | 5 ++--- .../com/typesafe/config/impl/ConfigImpl.java | 2 +- .../java/com/typesafe/config/impl/Loader.java | 3 +-- .../java/com/typesafe/config/impl/Parser.java | 2 +- .../config/impl/SimpleConfigObject.java | 5 ++--- .../config/impl/ConfigValueTest.scala | 22 +++++++++---------- .../com/typesafe/config/impl/JsonTest.scala | 2 +- 8 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/typesafe/config/impl/AbstractConfigObject.java b/src/main/java/com/typesafe/config/impl/AbstractConfigObject.java index ed852372..1541bd96 100644 --- a/src/main/java/com/typesafe/config/impl/AbstractConfigObject.java +++ b/src/main/java/com/typesafe/config/impl/AbstractConfigObject.java @@ -30,6 +30,10 @@ abstract class AbstractConfigObject extends AbstractConfigValue implements throw new ConfigException.BugOrBroken("null transformer"); } + protected AbstractConfigObject(ConfigOrigin origin) { + this(origin, ConfigImpl.defaultConfigTransformer()); + } + /** * This looks up the key with no transformation or type conversion of any * kind, and returns null if the key is not present. @@ -169,8 +173,7 @@ abstract class AbstractConfigObject extends AbstractConfigValue implements List stack = new ArrayList(); stack.add(this); stack.addAll(((Unresolved) other).unmergedValues()); - return new ConfigDelayedMergeObject(mergeOrigins(stack), - transformer, stack); + return new ConfigDelayedMergeObject(mergeOrigins(stack), stack); } else if (other instanceof AbstractConfigObject) { AbstractConfigObject fallback = (AbstractConfigObject) other; if (fallback.isEmpty()) { @@ -191,7 +194,7 @@ abstract class AbstractConfigObject extends AbstractConfigValue implements merged.put(key, first.withFallback(second)); } return new SimpleConfigObject(mergeOrigins(this, fallback), - transformer, merged); + merged); } } else { // falling back to a non-object has no effect, we just override @@ -266,7 +269,7 @@ abstract class AbstractConfigObject extends AbstractConfigValue implements resolved.put(k, peek(k)); } } - return new SimpleConfigObject(origin(), transformer, resolved); + return new SimpleConfigObject(origin(), resolved); } } diff --git a/src/main/java/com/typesafe/config/impl/ConfigDelayedMergeObject.java b/src/main/java/com/typesafe/config/impl/ConfigDelayedMergeObject.java index fe5ae517..c96297ae 100644 --- a/src/main/java/com/typesafe/config/impl/ConfigDelayedMergeObject.java +++ b/src/main/java/com/typesafe/config/impl/ConfigDelayedMergeObject.java @@ -18,9 +18,8 @@ final class ConfigDelayedMergeObject extends AbstractConfigObject implements final private List stack; ConfigDelayedMergeObject(ConfigOrigin origin, - ConfigTransformer transformer, List stack) { - super(origin, transformer); + super(origin); this.stack = stack; if (stack.isEmpty()) throw new ConfigException.BugOrBroken( @@ -57,7 +56,7 @@ final class ConfigDelayedMergeObject extends AbstractConfigObject implements else newStack.add((AbstractConfigValue) other); return new ConfigDelayedMergeObject( - AbstractConfigObject.mergeOrigins(newStack), transformer, + AbstractConfigObject.mergeOrigins(newStack), newStack); } else { // if the other is not an object, there won't be anything diff --git a/src/main/java/com/typesafe/config/impl/ConfigImpl.java b/src/main/java/com/typesafe/config/impl/ConfigImpl.java index f33a220e..c1e07cc8 100644 --- a/src/main/java/com/typesafe/config/impl/ConfigImpl.java +++ b/src/main/java/com/typesafe/config/impl/ConfigImpl.java @@ -128,6 +128,6 @@ public class ConfigImpl { new SimpleConfigOrigin("env var " + key), entry.getValue())); } return new SimpleConfigObject(new SimpleConfigOrigin("env variables"), - defaultConfigTransformer(), m); + m); } } diff --git a/src/main/java/com/typesafe/config/impl/Loader.java b/src/main/java/com/typesafe/config/impl/Loader.java index 6839642b..7c40fc64 100644 --- a/src/main/java/com/typesafe/config/impl/Loader.java +++ b/src/main/java/com/typesafe/config/impl/Loader.java @@ -157,7 +157,6 @@ final class Loader { // SimpleConfigObject yet we can get away with it. AbstractConfigObject o = new SimpleConfigObject( new SimpleConfigOrigin(originPrefix + " " + path), - ConfigImpl.defaultConfigTransformer(), scopes.get(path)); String basename = lastElement(path); parent.put(basename, o); @@ -172,6 +171,6 @@ final class Loader { // return root config object return new SimpleConfigObject(new SimpleConfigOrigin(originPrefix), - ConfigImpl.defaultConfigTransformer(), root); + root); } } diff --git a/src/main/java/com/typesafe/config/impl/Parser.java b/src/main/java/com/typesafe/config/impl/Parser.java index 5c0a8bb6..bfa5c367 100644 --- a/src/main/java/com/typesafe/config/impl/Parser.java +++ b/src/main/java/com/typesafe/config/impl/Parser.java @@ -320,7 +320,7 @@ final class Parser { } } return new SimpleConfigObject(objectOrigin, - ConfigImpl.defaultConfigTransformer(), values); + values); } private SimpleConfigList parseArray() { diff --git a/src/main/java/com/typesafe/config/impl/SimpleConfigObject.java b/src/main/java/com/typesafe/config/impl/SimpleConfigObject.java index 357f5dd2..a82058fe 100644 --- a/src/main/java/com/typesafe/config/impl/SimpleConfigObject.java +++ b/src/main/java/com/typesafe/config/impl/SimpleConfigObject.java @@ -20,9 +20,9 @@ final class SimpleConfigObject extends AbstractConfigObject { // this map should never be modified - assume immutable final private Map value; - SimpleConfigObject(ConfigOrigin origin, ConfigTransformer transformer, + SimpleConfigObject(ConfigOrigin origin, Map value) { - super(origin, transformer); + super(origin); if (value == null) throw new ConfigException.BugOrBroken( "creating config object with null map"); @@ -144,7 +144,6 @@ final class SimpleConfigObject extends AbstractConfigObject { final static SimpleConfigObject empty() { return new SimpleConfigObject(new SimpleConfigOrigin("empty config"), - ConfigImpl.defaultConfigTransformer(), Collections. emptyMap()); } } diff --git a/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala b/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala index 36786f78..ea67af4c 100644 --- a/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala +++ b/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala @@ -60,9 +60,9 @@ class ConfigValueTest extends TestUtils { val aMap = configMap("a" -> 1, "b" -> 2, "c" -> 3) val sameAsAMap = configMap("a" -> 1, "b" -> 2, "c" -> 3) val bMap = configMap("a" -> 3, "b" -> 4, "c" -> 5) - val a = new SimpleConfigObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), aMap) - val sameAsA = new SimpleConfigObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), sameAsAMap) - val b = new SimpleConfigObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), bMap) + val a = new SimpleConfigObject(fakeOrigin(), aMap) + val sameAsA = new SimpleConfigObject(fakeOrigin(), sameAsAMap) + val b = new SimpleConfigObject(fakeOrigin(), bMap) checkEqualObjects(a, a) checkEqualObjects(a, sameAsA) @@ -111,9 +111,9 @@ class ConfigValueTest extends TestUtils { val empty = SimpleConfigObject.empty() val s1 = subst("foo") val s2 = subst("bar") - val a = new ConfigDelayedMergeObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), List[AbstractConfigValue](empty, s1, s2).asJava) - val sameAsA = new ConfigDelayedMergeObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), List[AbstractConfigValue](empty, s1, s2).asJava) - val b = new ConfigDelayedMergeObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), List[AbstractConfigValue](empty, s2, s1).asJava) + val a = new ConfigDelayedMergeObject(fakeOrigin(), List[AbstractConfigValue](empty, s1, s2).asJava) + val sameAsA = new ConfigDelayedMergeObject(fakeOrigin(), List[AbstractConfigValue](empty, s1, s2).asJava) + val b = new ConfigDelayedMergeObject(fakeOrigin(), List[AbstractConfigValue](empty, s2, s1).asJava) checkEqualObjects(a, a) checkEqualObjects(a, sameAsA) @@ -137,7 +137,7 @@ class ConfigValueTest extends TestUtils { substInString("b").toString() val dm = new ConfigDelayedMerge(fakeOrigin(), List[AbstractConfigValue](subst("a"), subst("b")).asJava) dm.toString() - val dmo = new ConfigDelayedMergeObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), List[AbstractConfigValue](emptyObj, subst("a"), subst("b")).asJava) + val dmo = new ConfigDelayedMergeObject(fakeOrigin(), List[AbstractConfigValue](emptyObj, subst("a"), subst("b")).asJava) dmo.toString() } @@ -149,14 +149,14 @@ class ConfigValueTest extends TestUtils { @Test def configObjectUnwraps() { - val m = new SimpleConfigObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), + val m = new SimpleConfigObject(fakeOrigin(), configMap("a" -> 1, "b" -> 2, "c" -> 3)) assertEquals(Map("a" -> 1, "b" -> 2, "c" -> 3), m.unwrapped().asScala) } @Test def configObjectImplementsMap() { - val m: ConfigObject = new SimpleConfigObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), + val m: ConfigObject = new SimpleConfigObject(fakeOrigin(), configMap("a" -> 1, "b" -> 2, "c" -> 3)) assertEquals(intValue(1), m.get("a")) @@ -277,8 +277,8 @@ class ConfigValueTest extends TestUtils { unresolved { dm.unwrapped() } // ConfigDelayedMergeObject - val emptyObj = new SimpleConfigObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), Collections.emptyMap[String, AbstractConfigValue]()) - val dmo = new ConfigDelayedMergeObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), List[AbstractConfigValue](emptyObj, subst("a"), subst("b")).asJava) + val emptyObj = new SimpleConfigObject(fakeOrigin(), Collections.emptyMap[String, AbstractConfigValue]()) + val dmo = new ConfigDelayedMergeObject(fakeOrigin(), List[AbstractConfigValue](emptyObj, subst("a"), subst("b")).asJava) assertEquals(ConfigValueType.OBJECT, dmo.valueType()) unresolved { dmo.unwrapped() } unresolved { dmo.containsKey(null) } diff --git a/src/test/scala/com/typesafe/config/impl/JsonTest.scala b/src/test/scala/com/typesafe/config/impl/JsonTest.scala index 84dbef0b..f45dff63 100644 --- a/src/test/scala/com/typesafe/config/impl/JsonTest.scala +++ b/src/test/scala/com/typesafe/config/impl/JsonTest.scala @@ -49,7 +49,7 @@ class JsonTest extends TestUtils { case lift.JObject(fields) => val m = new HashMap[String, AbstractConfigValue]() fields.foreach({ field => m.put(field.name, fromLift(field.value)) }) - new SimpleConfigObject(fakeOrigin(), ConfigImpl.defaultConfigTransformer(), m) + new SimpleConfigObject(fakeOrigin(), m) case lift.JArray(values) => new SimpleConfigList(fakeOrigin(), values.map(fromLift(_)).asJava) case lift.JField(name, value) =>