ColorParser.java
package it.fulminazzo.yagl.parsers;
import it.fulminazzo.yagl.Color;
import it.fulminazzo.fulmicollection.interfaces.functions.BiFunctionException;
import it.fulminazzo.fulmicollection.interfaces.functions.TriConsumer;
import it.fulminazzo.yamlparser.configuration.IConfiguration;
import it.fulminazzo.yamlparser.parsers.YAMLParser;
/**
* A parser to serialize {@link Color}.
*/
public class ColorParser extends YAMLParser<Color> {
/**
* Instantiates a new Color parser.
*/
public ColorParser() {
super(Color.class);
}
@Override
protected BiFunctionException<IConfiguration, String, Color> getLoader() {
return (c, s) -> {
String name = c.getString(s);
if (name == null) return null;
Color o = Color.valueOf(name);
if (o == null) o = Color.fromARGB(name);
return o;
};
}
@Override
protected TriConsumer<IConfiguration, String, Color> getDumper() {
return (c, s, o) -> {
c.set(s, null);
if (o == null) return;
String name = o.name();
if (name != null) c.set(s, name);
else c.set(s, o.toARGB());
};
}
}