com.typesafe.config
Interface ConfigMergeable

All Known Subinterfaces:
Config, ConfigList, ConfigObject, ConfigValue

public interface ConfigMergeable

Marker for types whose instances can be merged, that is Config and ConfigValue. Instances of Config and ConfigValue can be combined into a single new instance using the withFallback() method.

Do not implement this interface; it should only be implemented by the config library. Arbitrary implementations will not work because the library internals assume a specific concrete implementation. Also, this interface is likely to grow new methods over time, so third-party implementations will break.


Method Summary
 ConfigMergeable withFallback(ConfigMergeable other)
          Returns a new value computed by merging this value with another, with keys in this value "winning" over the other one.
 

Method Detail

withFallback

ConfigMergeable withFallback(ConfigMergeable other)
Returns a new value computed by merging this value with another, with keys in this value "winning" over the other one. Only ConfigObject and Config instances do anything in this method (they need to merge the fallback keys into themselves). All other values just return the original value, since they automatically override any fallback.

The semantics of merging are described in the spec for HOCON.

Note that objects do not merge "across" non-objects; if you write object.withFallback(nonObject).withFallback(otherObject), then otherObject will simply be ignored. This is an intentional part of how merging works. Both non-objects, and any object which has fallen back to a non-object, block subsequent fallbacks.

Parameters:
other - an object whose keys should be used if the keys are not present in this one
Returns:
a new object (or the original one, if the fallback doesn't get used)