mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-05-05 17:36:23 +02:00
38 lines
1.5 KiB
Java
38 lines
1.5 KiB
Java
package com.intellectualcrafters.configuration.file;
|
|
|
|
import com.intellectualcrafters.configuration.ConfigurationSection;
|
|
import com.intellectualcrafters.configuration.serialization.ConfigurationSerializable;
|
|
import com.intellectualcrafters.configuration.serialization.ConfigurationSerialization;
|
|
import org.yaml.snakeyaml.nodes.Node;
|
|
import org.yaml.snakeyaml.representer.Representer;
|
|
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
|
|
public class YamlRepresenter extends Representer {
|
|
|
|
public YamlRepresenter() {
|
|
this.multiRepresenters.put(ConfigurationSection.class, new RepresentConfigurationSection());
|
|
this.multiRepresenters.put(ConfigurationSerializable.class, new RepresentConfigurationSerializable());
|
|
}
|
|
|
|
private class RepresentConfigurationSection extends RepresentMap {
|
|
@Override
|
|
public Node representData(Object data) {
|
|
return super.representData(((ConfigurationSection) data).getValues(false));
|
|
}
|
|
}
|
|
|
|
private class RepresentConfigurationSerializable extends RepresentMap {
|
|
@Override
|
|
public Node representData(Object data) {
|
|
ConfigurationSerializable serializable = (ConfigurationSerializable) data;
|
|
Map<String, Object> values = new LinkedHashMap<String, Object>();
|
|
values.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(serializable.getClass()));
|
|
values.putAll(serializable.serialize());
|
|
|
|
return super.representData(values);
|
|
}
|
|
}
|
|
}
|