Implement this interface and provide an instance to ConfigResolveOptions.appendResolver() to provide custom behavior when unresolved substitutions are encountered during resolution.
Returns the value to substitute for the given unresolved path. To get the components of the path use ConfigUtil.splitPath(String). If a non-null value is returned that value will be substituted, otherwise resolution will continue to consider the substitution as still unresolved.
Returns the value to substitute for the given unresolved path. To get the components of the path use ConfigUtil.splitPath(String). If a non-null value is returned that value will be substituted, otherwise resolution will continue to consider the substitution as still unresolved.
Returns a new resolver that falls back to the given resolver if this one doesn't provide a substitution itself.
Returns a new resolver that falls back to the given resolver if this one doesn't provide a substitution itself.
It's important to handle the case where you already have the fallback with a "return this", i.e. this method should not create a new object if the fallback is the same one you already have. The same fallback may be added repeatedly.