|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ConfigValue
An immutable value, following the JSON type schema.
Because this object is immutable, it is safe to use from multiple threads and there's no need for "defensive copies."
Do not implement ConfigValue
; 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 | |
---|---|
ConfigOrigin |
origin()
The origin of the value (file, line number, etc.), for debugging and error messages. |
String |
render()
Renders the config value as a HOCON string. |
String |
render(ConfigRenderOptions options)
Renders the config value to a string, using the provided options. |
Object |
unwrapped()
Returns the value as a plain Java boxed value, that is, a String ,
Number , Boolean , Map<String,Object> ,
List<Object> , or null , matching the valueType()
of this ConfigValue . |
ConfigValueType |
valueType()
The ConfigValueType of the value; matches the JSON type schema. |
ConfigValue |
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 |
---|
ConfigOrigin origin()
ConfigValueType valueType()
ConfigValueType
of the value; matches the JSON type schema.
Object unwrapped()
String
,
Number
, Boolean
, Map<String,Object>
,
List<Object>
, or null
, matching the valueType()
of this ConfigValue
. If the value is a ConfigObject
or
ConfigList
, it is recursively unwrapped.
String render()
If the config value has not been resolved (see Config.resolve()
),
it's possible that it can't be rendered as valid HOCON. In that case the
rendering should still be useful for debugging but you might not be able
to parse it.
This method is equivalent to
render(ConfigRenderOptions.defaults())
.
String render(ConfigRenderOptions options)
If the config value has not been resolved (see Config.resolve()
),
it's possible that it can't be rendered as valid HOCON. In that case the
rendering should still be useful for debugging but you might not be able
to parse it.
If the config value has been resolved and the options disable all HOCON-specific features (such as comments), the rendering will be valid JSON. If you enable HOCON-only features such as comments, the rendering will not be valid JSON.
options
- the rendering options
ConfigValue withFallback(ConfigMergeable other)
ConfigMergeable
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.
withFallback
in interface ConfigMergeable
other
- an object whose keys should be used if the keys are not
present in this one
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |