34 lines
1.6 KiB
Java
34 lines
1.6 KiB
Java
|
package io.gitlab.jfronny.libjf.config.api.dsl;
|
||
|
|
||
|
import io.gitlab.jfronny.libjf.config.api.*;
|
||
|
|
||
|
import java.util.function.Consumer;
|
||
|
import java.util.function.Supplier;
|
||
|
|
||
|
public interface CategoryBuilder<Builder extends CategoryBuilder<Builder>> {
|
||
|
Builder setTranslationPrefix(String translationPrefix);
|
||
|
String getTranslationPrefix();
|
||
|
Builder addPreset(String id, Consumer<ConfigCategory> action);
|
||
|
Builder addVerifier(Consumer<ConfigCategory> verifier);
|
||
|
Builder referenceConfig(String id);
|
||
|
Builder referenceConfig(ConfigInstance config);
|
||
|
Builder category(String id, CategoryBuilderFunction builder);
|
||
|
Builder value(String id, int def, double min, double max, Supplier<Integer> get, Consumer<Integer> set);
|
||
|
Builder value(String id, float def, double min, double max, Supplier<Float> get, Consumer<Float> set);
|
||
|
Builder value(String id, double def, double min, double max, Supplier<Double> get, Consumer<Double> set);
|
||
|
Builder value(String id, String def, Supplier<String> get, Consumer<String> set);
|
||
|
Builder value(String id, boolean def, Supplier<Boolean> get, Consumer<Boolean> set);
|
||
|
Builder value(String id, String def, String[] options, Supplier<String> get, Consumer<String> set);
|
||
|
<T extends Enum<T>> Builder value(String id, T def, Class<T> klazz, Supplier<T> get, Consumer<T> set);
|
||
|
<T> Builder value(EntryInfo<T> entry);
|
||
|
|
||
|
String getId();
|
||
|
|
||
|
ConfigCategory build(Supplier<ConfigInstance> root);
|
||
|
|
||
|
@FunctionalInterface
|
||
|
interface CategoryBuilderFunction {
|
||
|
CategoryBuilder<?> apply(CategoryBuilder<?> builder);
|
||
|
}
|
||
|
}
|