1
mirror of https://github.com/CarmJos/EasyConfiguration.git synced 2026-06-04 10:38:19 +08:00

feat!(value): Redesigned the Configuration api

This commit is contained in:
2025-02-02 22:29:18 +08:00
parent da3d4d1fd2
commit 374a6198d8
58 changed files with 1635 additions and 1383 deletions
@@ -1,15 +1,12 @@
package cc.carm.lib.configuration.option;
import cc.carm.lib.easyoptions.OptionType;
import static cc.carm.lib.easyoptions.OptionType.of;
import cc.carm.lib.configuration.source.option.ConfigurationOption;
public class FileConfigOptions {
/**
* Whether to copy files from resource if exists.
*/
OptionType<Boolean> COPY_DEFAULTS = of(true);
ConfigurationOption<Boolean> COPY_DEFAULTS = ConfigurationOption.of(true);
}
@@ -0,0 +1,21 @@
package cc.carm.lib.configuration.source;
import cc.carm.lib.configuration.adapter.ValueAdapterRegistry;
import cc.carm.lib.configuration.meta.PathMetadata;
import cc.carm.lib.configuration.source.loader.ConfigurationLoader;
import cc.carm.lib.configuration.source.option.ConfigurationOptionHolder;
import cc.carm.lib.configuration.source.section.ConfigurationSource;
import org.jetbrains.annotations.NotNull;
import java.util.Map;
public abstract class FileProvider<S extends ConfigurationSource<S, ?>> extends ConfigurationProvider<S> {
public FileProvider(@NotNull S source, @NotNull ConfigurationLoader loader,
@NotNull ValueAdapterRegistry adapters, @NotNull ConfigurationOptionHolder options,
@NotNull Map<String, Map<PathMetadata<?>, Object>> pathMetadata) {
super(source, loader, adapters, options, pathMetadata);
}
}