[config] Generate default preset for all configs (but allow users to remove it)
This commit is contained in:
parent
ac374ca790
commit
3dd4e5f84f
|
@ -12,10 +12,13 @@ import java.util.function.Supplier;
|
|||
* @param <Builder> The class implementing this builder
|
||||
*/
|
||||
public interface CategoryBuilder<Builder extends CategoryBuilder<Builder>> {
|
||||
String CONFIG_PRESET_DEFAULT = "libjf-config-v1.default";
|
||||
|
||||
Builder setTranslationPrefix(String translationPrefix);
|
||||
String getTranslationPrefix();
|
||||
Builder addPreset(String id, Consumer<ConfigCategory> action);
|
||||
Builder addPreset(String id, Runnable preset);
|
||||
Builder removePreset(String id);
|
||||
Builder addVerifier(Consumer<ConfigCategory> verifier);
|
||||
Builder addVerifier(Runnable verifier);
|
||||
Builder referenceConfig(String id);
|
||||
|
|
|
@ -7,7 +7,6 @@ import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
|||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CategoryBuilderImpl<Builder extends CategoryBuilderImpl<Builder>> implements CategoryBuilder<Builder> {
|
||||
public final List<CategoryBuilder<?>> categories = new LinkedList<>();
|
||||
|
@ -24,6 +23,7 @@ public class CategoryBuilderImpl<Builder extends CategoryBuilderImpl<Builder>> i
|
|||
this.id = id;
|
||||
this.categoryPath = categoryPath;
|
||||
this.translationPrefix = id + ".jfconfig." + categoryPath;
|
||||
addPreset(CONFIG_PRESET_DEFAULT, ConfigCategory::reset);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -51,6 +51,13 @@ public class CategoryBuilderImpl<Builder extends CategoryBuilderImpl<Builder>> i
|
|||
return addPreset(id, cfg -> preset.run());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder removePreset(String id) {
|
||||
checkBuilt();
|
||||
if (presets.remove(id) == null) throw new NoSuchElementException();
|
||||
return asBuilder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder addVerifier(Consumer<ConfigCategory> verifier) {
|
||||
checkBuilt();
|
||||
|
|
|
@ -15,7 +15,6 @@ import java.lang.reflect.Method;
|
|||
import java.util.Objects;
|
||||
|
||||
public class ReflectiveConfigBuilderImpl implements ReflectiveConfigBuilder {
|
||||
public static final String CONFIG_PRESET_DEFAULT = "libjf-config-v1.default";
|
||||
private final AuxiliaryMetadata rootMeta;
|
||||
private final Class<?> rootClass;
|
||||
|
||||
|
@ -37,7 +36,6 @@ public class ReflectiveConfigBuilderImpl implements ReflectiveConfigBuilder {
|
|||
builder.value(DslEntryInfo.ofField(field));
|
||||
}
|
||||
}
|
||||
builder.addPreset(CONFIG_PRESET_DEFAULT, ConfigCategory::reset);
|
||||
for (Method method : configClass.getMethods()) {
|
||||
try {
|
||||
if (method.isAnnotationPresent(Preset.class)) {
|
||||
|
|
Loading…
Reference in New Issue