34 lines
1.1 KiB
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();
|
|
}
|