1
mirror of https://github.com/CarmJos/EasyConfiguration.git synced 2024-09-19 12:15:52 +00:00

docs(sample): Add sample codes. 🍎

This commit is contained in:
Carm Jos 2024-01-04 21:29:06 +08:00
parent 0d19dc236e
commit 34bc7601ee
3 changed files with 25 additions and 19 deletions

View File

@ -6,6 +6,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Objects;
import java.util.UUID;
@FunctionalInterface
public interface ConfigValueParser<T, R> {
@ -69,6 +70,8 @@ public interface ConfigValueParser<T, R> {
} else if (Enum.class.isAssignableFrom(valueClass) && input instanceof String) {
String enumName = (String) input;
input = valueClass.getDeclaredMethod("valueOf", String.class).invoke(null, enumName);
} else if (UUID.class.isAssignableFrom(valueClass) && input instanceof String) {
input = UUID.fromString((String) input);
}
if (valueClass.isInstance(input)) return valueClass.cast(input);

View File

@ -0,0 +1,18 @@
package sample;
import cc.carm.lib.configuration.EasyConfiguration;
import cc.carm.lib.configuration.core.source.ConfigurationProvider;
public class Sample {
public static void main(String[] args) {
// 1. Make a configuration provider from a file.
ConfigurationProvider<?> provider = EasyConfiguration.from("config.yml");
// 2. Initialize the configuration classes or instances.
provider.initialize(SampleConfig.class);
// 3. Enjoy using the configuration!
SampleConfig.ENABLED.set(false);
System.out.println("Your name is " + SampleConfig.INFO.NAME.getNotNull() + " !");
}
}

View File

@ -1,18 +1,16 @@
package config;
package sample;
import cc.carm.lib.configuration.EasyConfiguration;
import cc.carm.lib.configuration.core.Configuration;
import cc.carm.lib.configuration.core.annotation.ConfigPath;
import cc.carm.lib.configuration.core.annotation.HeaderComment;
import cc.carm.lib.configuration.core.annotation.InlineComment;
import cc.carm.lib.configuration.core.source.ConfigurationProvider;
import cc.carm.lib.configuration.core.value.type.ConfiguredList;
import cc.carm.lib.configuration.core.value.type.ConfiguredValue;
import java.util.UUID;
@HeaderComment("Configurations for sample")
interface SampleConfig extends Configuration {
public interface SampleConfig extends Configuration {
@InlineComment("Enabled?") // Inline comment
ConfiguredValue<Boolean> ENABLED = ConfiguredValue.of(true);
@ -25,25 +23,12 @@ interface SampleConfig extends Configuration {
).build();
interface INFO extends Configuration {
@HeaderComment("Configure your name!") // Header comment
ConfiguredValue<String> NAME = ConfiguredValue.of("Joker");
@ConfigPath("year") // Custom path
ConfiguredValue<Integer> AGE = ConfiguredValue.of(24);
}
}
public class Sample {
public static void main(String[] args) {
// 1. Make a configuration provider from a file.
ConfigurationProvider<?> provider = EasyConfiguration.from("config.yml");
// 2. Initialize the configuration classes or instances.
provider.initialize(SampleConfig.class);
// 3. Enjoy using the configuration!
SampleConfig.ENABLED.set(false);
System.out.println("Your name is " + SampleConfig.INFO.NAME.getNotNull() + " !");
}
}