package io.gitlab.jfronny.libjf.config.api.v1.dsl; import io.gitlab.jfronny.commons.SamWithReceiver; import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance; import java.nio.file.Path; import java.util.function.Consumer; /** * An interface obtained through DSL, used to create config instances * @param The class implementing this builder */ public interface ConfigBuilder> extends CategoryBuilder { Builder setLoadMethod(Consumer load); Builder setWriteMethod(Consumer write); Builder executeAfterWrite(Consumer method); Builder setPath(Path path); ConfigInstance build(); @FunctionalInterface @SamWithReceiver interface ConfigBuilderFunction { ConfigBuilder apply(ConfigBuilder builder); } }