LibJF/libjf-config-v0/src/main/java/io/gitlab/jfronny/libjf/config/api/ConfigInstance.java

34 lines
1.1 KiB
Java

package io.gitlab.jfronny.libjf.config.api;
import io.gitlab.jfronny.gson.JsonObject;
import io.gitlab.jfronny.gson.stream.JsonWriter;
import io.gitlab.jfronny.libjf.config.impl.EntryInfo;
import org.jetbrains.annotations.ApiStatus;
import java.io.IOException;
import java.util.List;
import java.util.Map;
public interface ConfigInstance {
static ConfigInstance get(Class<?> configClass) {
return ConfigHolder.getInstance().get(configClass);
}
static ConfigInstance get(String modId) {
return ConfigHolder.getInstance().get(modId);
}
void load();
void write();
String getModId();
List<EntryInfo> getEntries();
Map<String, Runnable> getPresets();
List<String> getReferencedConfigs();
Map<String, ConfigInstance> getCategories();
@ApiStatus.Internal void syncToClass();
@ApiStatus.Internal void syncFromClass();
@ApiStatus.Internal boolean matchesConfigClass(Class<?> candidate);
@ApiStatus.Internal void loadFrom(JsonObject source);
@ApiStatus.Internal void writeTo(JsonWriter writer) throws IOException;
@ApiStatus.Internal String getCategoryPath();
}