package io.gitlab.jfronny.libjf.config.impl.dsl; import io.gitlab.jfronny.libjf.config.api.v1.*; import org.jetbrains.annotations.Nullable; import java.nio.file.Path; import java.util.*; import java.util.function.Consumer; import java.util.function.Supplier; public class DslConfigInstance extends DslConfigCategory implements ConfigInstance { private final Consumer load; private final Consumer write; private final Path path; public DslConfigInstance(String id, String translationPrefix, List> entries, Map> presets, Supplier> referencedConfigs, Map categories, Supplier root, List> verifiers, Consumer load, Consumer write, @Nullable Path path) { super(id, "", translationPrefix, entries, presets, referencedConfigs, categories, root, verifiers); this.load = load; this.write = write; this.path = path; } @Override public void load() { load.accept(this); } @Override public void write() { write.accept(this); } @Override public Optional getFilePath() { return Optional.ofNullable(path); } }