Package com.amihaiemil.eoyaml.extensions
Class MergedYamlMapping
- java.lang.Object
-
- com.amihaiemil.eoyaml.BaseYamlMapping
-
- com.amihaiemil.eoyaml.extensions.MergedYamlMapping
-
- All Implemented Interfaces:
YamlMapping,YamlNode,Comparable<YamlNode>
public final class MergedYamlMapping extends BaseYamlMapping
Merge two YAML Mappings into a single one. Very useful in implementing Updating of an existing YamlMapping. Use it like this:final YamlMapping original = ...; final YamlMapping changed = ...; final YamlMapping merged = new MergedYamlMapping( original, changed, true|false ); //or, via the Supplier constructor: final YamlMapping merged = new MergedYamlMapping( original, () -> { //create the changed version on-the-fly, right here. }, true|false );- Since:
- 4.1.0
- Version:
- $Id: 6bd6766e8f3b6b1d1493457c9e082853aa3135f9 $
- Author:
- Mihai Andronache (amihaiemil@gmail.com)
-
-
Constructor Summary
Constructors Constructor Description MergedYamlMapping(YamlMapping original, YamlMapping changed)Constructor.MergedYamlMapping(YamlMapping original, YamlMapping changed, boolean overrideConflicts)Constructor.MergedYamlMapping(YamlMapping original, Supplier<YamlMapping> changed)Constructor.MergedYamlMapping(YamlMapping original, Supplier<YamlMapping> changed, boolean overrideConflicts)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends YamlNode>
TasClass(Class<T> clazz, Node type)Gives theYamlNodeinstance from node class and node type.YamlMappingasMapping()Gives a Mapping value of the node.ScalarasScalar()Gives a String value of the node.YamlSequenceasSequence()Gives a Sequence value of the node.YamlStreamasStream()Gives a Stream value of the node.Commentcomment()Comment referring to this Node.Set<YamlNode>keys()Return the keys' set of this mapping.StringtoString()Print this YamlNode using a StringWriter to create its String representation.YamlNodevalue(YamlNode key)Get the YamlNode mapped to the specified key.-
Methods inherited from class com.amihaiemil.eoyaml.BaseYamlMapping
compareTo, equals, hashCode, isEmpty, type
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.amihaiemil.eoyaml.YamlMapping
date, date, dateTime, dateTime, doubleNumber, doubleNumber, floatNumber, floatNumber, foldedBlockScalar, foldedBlockScalar, integer, integer, literalBlockScalar, literalBlockScalar, longNumber, longNumber, string, string, value, values, yamlMapping, yamlMapping, yamlSequence, yamlSequence
-
-
-
-
Constructor Detail
-
MergedYamlMapping
public MergedYamlMapping(YamlMapping original, YamlMapping changed)
Constructor. By default, conflicting keys will not be overriden.- Parameters:
original- YamlMapping in which the changes will be merged.changed- YamlMapping containing the differences.
-
MergedYamlMapping
public MergedYamlMapping(YamlMapping original, Supplier<YamlMapping> changed)
Constructor. By default, conflicting keys will not be overriden.- Parameters:
original- YamlMapping in which the changes will be merged.changed- Supplier of YamlMapping containing the differences.
-
MergedYamlMapping
public MergedYamlMapping(YamlMapping original, Supplier<YamlMapping> changed, boolean overrideConflicts)
Constructor. You can choose whether conflicting keys will be overriden or not.- Parameters:
original- YamlMapping in which the changes will be merged.changed- YamlMapping containing the differences.overrideConflicts- Override key conflicts or not?
-
MergedYamlMapping
public MergedYamlMapping(YamlMapping original, YamlMapping changed, boolean overrideConflicts)
Constructor. You can choose whether conflicting keys will be overriden or not.- Parameters:
original- YamlMapping in which the changes will be merged.changed- YamlMapping containing the differences.overrideConflicts- Override key conflicts or not?
-
-
Method Detail
-
keys
public Set<YamlNode> keys()
Description copied from interface:YamlMappingReturn the keys' set of this mapping.- Returns:
- Set of YamlNode keys.
-
value
public YamlNode value(YamlNode key)
Description copied from interface:YamlMappingGet the YamlNode mapped to the specified key.- Parameters:
key- YamlNode key. Could be a simple scalar, a YamlMapping or a YamlSequence.- Returns:
- The found YamlNode or null if nothing is found.
-
comment
public Comment comment()
Description copied from interface:YamlNodeComment referring to this Node.- Returns:
- Comment. If there is no comment, it will return an "empty" comment (an instance of Comment with empty-string value()).
-
asScalar
public final Scalar asScalar() throws YamlReadingException, ClassCastException
Description copied from interface:YamlNodeGives a String value of the node.- Specified by:
asScalarin interfaceYamlNode- Returns:
- String value of the node.
- Throws:
YamlReadingException- If the node type is not Scalar.ClassCastException- If the node type couldn't defined correctly.
-
asMapping
public final YamlMapping asMapping() throws YamlReadingException, ClassCastException
Description copied from interface:YamlNodeGives a Mapping value of the node.- Specified by:
asMappingin interfaceYamlNode- Returns:
- Mapping value of the node.
- Throws:
YamlReadingException- If the node type is not Mapping.ClassCastException- If the node type couldn't defined correctly.
-
asSequence
public final YamlSequence asSequence() throws YamlReadingException, ClassCastException
Description copied from interface:YamlNodeGives a Sequence value of the node.- Specified by:
asSequencein interfaceYamlNode- Returns:
- Sequence value of the node.
- Throws:
YamlReadingException- If the node type is not Sequence.ClassCastException- If the node type couldn't defined correctly.
-
asStream
public final YamlStream asStream() throws YamlReadingException, ClassCastException
Description copied from interface:YamlNodeGives a Stream value of the node.- Specified by:
asStreamin interfaceYamlNode- Returns:
- Stream value of the node.
- Throws:
YamlReadingException- If the node type is not Stream.ClassCastException- If the node type couldn't defined correctly.
-
asClass
public final <T extends YamlNode> T asClass(Class<T> clazz, Node type) throws YamlReadingException, ClassCastException
Description copied from interface:YamlNodeGives theYamlNodeinstance from node class and node type.- Specified by:
asClassin interfaceYamlNode- Type Parameters:
T- Requested aYamlNodeclass instance.- Parameters:
clazz- Requested aYamlNodeclass.type- Requested aNode.- Returns:
- Requested a
YamlNode. - Throws:
YamlReadingException- If the type is not aYamlNode.ClassCastException- If the node type couldn't defined correctly.
-
toString
public final String toString()
Print this YamlNode using a StringWriter to create its String representation.- Overrides:
toStringin classObject- Returns:
- String print of this YamlNode.
- Throws:
YamlPrintException- If there is any I/O problem when printing the YAML.
-
-