Util: add functions for serialising YAML maps.
This commit is contained in:
parent
ee9c435b5d
commit
2bc9cac661
|
@ -1,6 +1,14 @@
|
|||
package moe.nekojimi.chords;
|
||||
|
||||
import com.amihaiemil.eoyaml.Yaml;
|
||||
import com.amihaiemil.eoyaml.YamlMapping;
|
||||
import com.amihaiemil.eoyaml.YamlMappingBuilder;
|
||||
import com.amihaiemil.eoyaml.YamlNode;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.function.Function;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
@ -31,6 +39,26 @@ public class Util
|
|||
private static final Pattern SIZE_PATTERN = Pattern.compile("\\b([0-9]+\\.?[0-9]*)([kkMmGg])i?[bB]\\b");
|
||||
private static final Pattern SAMPLE_RATE_PATTERN = Pattern.compile("\\b([0-9]+)k(b(ps?))?\\b");
|
||||
|
||||
public static <V> Map<String, V> yamlMappingToMap(YamlMapping mapping, Function<YamlNode, V> fromYamlFunction)
|
||||
{
|
||||
Map<String, V> ret = new HashMap<>();
|
||||
for (YamlNode key : mapping.keys())
|
||||
{
|
||||
ret.put(key.asScalar().value(), fromYamlFunction.apply(mapping.value(key)));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static <K, V> YamlMapping mapToMapping(Map<K, V> map, Function<V, YamlNode> toYamlFunction)
|
||||
{
|
||||
YamlMappingBuilder builder = Yaml.createYamlMappingBuilder();
|
||||
for (Entry<K, V> e : map.entrySet())
|
||||
{
|
||||
builder = builder.add(e.getKey().toString(), toYamlFunction.apply(e.getValue()));
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
public static String printSamples(ByteBuffer buf)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
|
Loading…
Reference in New Issue