56 lines
2.3 KiB
Java
56 lines
2.3 KiB
Java
|
package io.gitlab.jfronny.respackopts;
|
||
|
|
||
|
import com.google.gson.Gson;
|
||
|
import com.google.gson.GsonBuilder;
|
||
|
import io.gitlab.jfronny.respackopts.gson.*;
|
||
|
import io.gitlab.jfronny.respackopts.gson.entry.BooleanEntrySerializer;
|
||
|
import io.gitlab.jfronny.respackopts.gson.entry.ConfigBranchSerializer;
|
||
|
import io.gitlab.jfronny.respackopts.gson.entry.EnumEntrySerializer;
|
||
|
import io.gitlab.jfronny.respackopts.gson.entry.NumericEntrySerializer;
|
||
|
import io.gitlab.jfronny.respackopts.model.condition.Condition;
|
||
|
import io.gitlab.jfronny.respackopts.model.tree.ConfigBooleanEntry;
|
||
|
import io.gitlab.jfronny.respackopts.model.tree.ConfigBranch;
|
||
|
import io.gitlab.jfronny.respackopts.model.tree.ConfigEnumEntry;
|
||
|
import io.gitlab.jfronny.respackopts.model.tree.ConfigNumericEntry;
|
||
|
import meteordevelopment.starscript.Script;
|
||
|
|
||
|
public class TemplateTree {
|
||
|
private static final Gson GSON = new GsonBuilder()
|
||
|
.registerTypeAdapter(ConfigEnumEntry.class, new EnumEntrySerializer())
|
||
|
.registerTypeAdapter(ConfigNumericEntry.class, new NumericEntrySerializer())
|
||
|
.registerTypeAdapter(ConfigBooleanEntry.class, new BooleanEntrySerializer())
|
||
|
.registerTypeAdapter(ConfigBranch.class, new ConfigBranchSerializer())
|
||
|
.registerTypeAdapter(Script.class, new ScriptDeserializer())
|
||
|
.registerTypeAdapter(Condition.class, new ConditionDeserializer())
|
||
|
.registerTypeAdapterFactory(new SingleEntrySetTypeAdapterFactory())
|
||
|
.registerTypeAdapterFactory(new SingleEntryListTypeAdapterFactory())
|
||
|
.setPrettyPrinting()
|
||
|
.create();
|
||
|
|
||
|
public static ConfigBranch getBranch() {
|
||
|
return GSON.fromJson("""
|
||
|
{
|
||
|
"boolean": true,
|
||
|
"boolean2": false,
|
||
|
"number1": 0,
|
||
|
"number2": 0.5,
|
||
|
"number3": {
|
||
|
"type": "slider",
|
||
|
"default": 2,
|
||
|
"min": 0,
|
||
|
"max": 4
|
||
|
},
|
||
|
"enum": [
|
||
|
"enum1",
|
||
|
"enum2",
|
||
|
"enum3"
|
||
|
],
|
||
|
"subBranch": {
|
||
|
"boolean3": true,
|
||
|
"boolean4": false
|
||
|
}
|
||
|
}
|
||
|
""", ConfigBranch.class);
|
||
|
}
|
||
|
}
|