2022-08-26 20:51:00 +02:00
|
|
|
package io.gitlab.jfronny.libjf.config.api.v1.dsl;
|
2022-08-21 22:34:55 +02:00
|
|
|
|
2022-08-26 20:51:00 +02:00
|
|
|
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
2022-08-21 22:34:55 +02:00
|
|
|
|
|
|
|
import java.nio.file.Path;
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
|
2022-08-27 20:17:13 +02:00
|
|
|
/**
|
|
|
|
* An interface obtained through DSL, used to create config instances
|
|
|
|
* @param <Builder> The class implementing this builder
|
|
|
|
*/
|
2022-08-21 22:34:55 +02:00
|
|
|
public interface ConfigBuilder<Builder extends ConfigBuilder<Builder>> extends CategoryBuilder<Builder> {
|
|
|
|
Builder setLoadMethod(Consumer<ConfigInstance> load);
|
|
|
|
Builder setWriteMethod(Consumer<ConfigInstance> write);
|
|
|
|
Builder setPath(Path path);
|
|
|
|
|
|
|
|
ConfigInstance build();
|
|
|
|
|
|
|
|
@FunctionalInterface
|
|
|
|
interface ConfigBuilderFunction {
|
|
|
|
ConfigBuilder<?> apply(ConfigBuilder<?> builder);
|
|
|
|
}
|
|
|
|
}
|