mirror of
https://github.com/lightbend/config.git
synced 2025-03-19 05:40:26 +08:00
completely drop "transformer" arg to ConfigObject constructors
If you want to change the transformer, use the transformed() method.
This commit is contained in:
parent
8c00a97243
commit
529b3b1f55
@ -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<AbstractConfigValue> stack = new ArrayList<AbstractConfigValue>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,9 +18,8 @@ final class ConfigDelayedMergeObject extends AbstractConfigObject implements
|
||||
final private List<AbstractConfigValue> stack;
|
||||
|
||||
ConfigDelayedMergeObject(ConfigOrigin origin,
|
||||
ConfigTransformer transformer,
|
||||
List<AbstractConfigValue> 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
|
||||
|
@ -128,6 +128,6 @@ public class ConfigImpl {
|
||||
new SimpleConfigOrigin("env var " + key), entry.getValue()));
|
||||
}
|
||||
return new SimpleConfigObject(new SimpleConfigOrigin("env variables"),
|
||||
defaultConfigTransformer(), m);
|
||||
m);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -320,7 +320,7 @@ final class Parser {
|
||||
}
|
||||
}
|
||||
return new SimpleConfigObject(objectOrigin,
|
||||
ConfigImpl.defaultConfigTransformer(), values);
|
||||
values);
|
||||
}
|
||||
|
||||
private SimpleConfigList parseArray() {
|
||||
|
@ -20,9 +20,9 @@ final class SimpleConfigObject extends AbstractConfigObject {
|
||||
// this map should never be modified - assume immutable
|
||||
final private Map<String, AbstractConfigValue> value;
|
||||
|
||||
SimpleConfigObject(ConfigOrigin origin, ConfigTransformer transformer,
|
||||
SimpleConfigObject(ConfigOrigin origin,
|
||||
Map<String, AbstractConfigValue> 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.<String, AbstractConfigValue> emptyMap());
|
||||
}
|
||||
}
|
||||
|
@ -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) }
|
||||
|
@ -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) =>
|
||||
|
Loading…
Reference in New Issue
Block a user