public abstract class YamlProcessor extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
YamlProcessor.DocumentMatcher
Strategy interface used to test if properties match.
|
static interface |
YamlProcessor.MatchCallback
Callback interface used to process properties in a resulting map.
|
static class |
YamlProcessor.MatchStatus
Status returned from
YamlProcessor.DocumentMatcher.matches(java.util.Properties) |
static class |
YamlProcessor.ResolutionMethod
Method to use for resolving resources.
|
protected static class |
YamlProcessor.StrictMapAppenderConstructor
A specialized
Constructor that checks for duplicate keys. |
Constructor and Description |
---|
YamlProcessor() |
Modifier and Type | Method and Description |
---|---|
protected org.yaml.snakeyaml.Yaml |
createYaml()
Create the
Yaml instance to use. |
protected Map<String,Object> |
getFlattenedMap(Map<String,Object> source)
Return a flattened version of the given map, recursively following any nested Map
or Collection values.
|
protected void |
process(YamlProcessor.MatchCallback callback)
Provide an opportunity for subclasses to process the Yaml parsed from the supplied
resources.
|
void |
setDocumentMatchers(YamlProcessor.DocumentMatcher... matchers)
A map of document matchers allowing callers to selectively use only
some of the documents in a YAML resource.
|
void |
setMatchDefault(boolean matchDefault)
Flag indicating that a document for which all the
document matchers abstain will
nevertheless match. |
void |
setResolutionMethod(YamlProcessor.ResolutionMethod resolutionMethod)
Method to use for resolving resources.
|
void |
setResources(Resource... resources)
Set locations of YAML
resources to be loaded. |
public void setDocumentMatchers(YamlProcessor.DocumentMatcher... matchers)
--- lines, and each document is converted
to properties before the match is made. E.g.
environment: dev
url: http://dev.bar.com
name: Developer Setup
---
environment: prod
url:http://foo.bar.com
name: My Cool App
when mapped with
documentMatchers = YamlProcessor.mapMatcher({"environment": "prod"})
would end up as
environment=prod
url=http://foo.bar.com
name=My Cool App
url=http://dev.bar.com
matchers
- a map of keys to value patterns (regular expressions)public void setMatchDefault(boolean matchDefault)
document matchers
abstain will
nevertheless match.matchDefault
- the flag to set (default true)public void setResolutionMethod(YamlProcessor.ResolutionMethod resolutionMethod)
resolutionMethod
- the resolution method to set (defaults to
YamlProcessor.ResolutionMethod.OVERRIDE
).public void setResources(Resource... resources)
resources
to be loaded.YamlProcessor.ResolutionMethod
protected void process(YamlProcessor.MatchCallback callback)
matchers
. If a document
matches it is passed into the callback, along with its representation as Properties.
Depending on the setResolutionMethod(ResolutionMethod)
not all of the
documents will be parsed.callback
- a callback to delegate to once matching documents are foundcreateYaml()
protected org.yaml.snakeyaml.Yaml createYaml()
Yaml
instance to use.protected final Map<String,Object> getFlattenedMap(Map<String,Object> source)
YamlProcessor.MatchCallback
the result will
contain the same values as the YamlProcessor.MatchCallback
Properties.source
- the source map