From bd6dd61a53aa744f31ff29e79f99d290c3a5ed10 Mon Sep 17 00:00:00 2001 From: Fulminazzo Date: Mon, 8 Apr 2024 00:02:50 +0200 Subject: [PATCH] YAMLParser now supports YAML lists not parsed by the parser itself. This means that list of type ```yaml list: - test: "Hello" - test: "Hi" ``` will be parsed as a list of (ConfigurationSection)[src/main/java/it/fulminazzo/yamlparser/configuration/ConfigurationSection]. Totally reworked classes separation to respect packaging conventions. Reworked FileConfiguration#addParsers method. Reworked `FileConfiguration#newYaml` method to support older versions of SnakeYAML. Renamed `it.fulminazzo.yamlparser.configurations` package to `it.fulminazzo.yamlparser.configuration`. Made FileConfiguration and ConfigurationSection final. Added support for escaped dot characters: now it will be able to use `\.` in paths to allow for dotted strings to be parsed. Added support for BigDecimal notation when getting Number types. Added `unquote` method to remove quoted strings when saving or loading. Added `getOptional` method in IConfiguration. Added `getOptionalList` method in IConfiguration. Added _gui_ formatting in `FileUtils#formatStringToYaml(String)`. Added `IConfiguration#setList` to save lists in dash form. Now IConfiguration extends Serializable. Removed nullity annotations from **YAMLParser** methods. Fixed dotted test error. Fixed `IConfiguration#getKeys` not returning an ordered set. Fixed NullPointerException in `IConfiguration#throwException` method. Fixed MapYAMLParser not supporting primitive types. Fixed `FileConfiguration#getParser` method to look first for equal object classes. Fixed `CollectionYAMLParser` not returning null values in non-specified indexes. Fixed `IConfiguration#getList(String, Class)` not checking correct paths. Fixed `IConfiguration#contains` not checking for valid section. Updated README.md. Updated FulmiCollection. --- .../yamlparser/configuration/IConfiguration.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/it/fulminazzo/yamlparser/configuration/IConfiguration.java b/src/main/java/it/fulminazzo/yamlparser/configuration/IConfiguration.java index b00811d..d9e8148 100644 --- a/src/main/java/it/fulminazzo/yamlparser/configuration/IConfiguration.java +++ b/src/main/java/it/fulminazzo/yamlparser/configuration/IConfiguration.java @@ -879,6 +879,18 @@ default boolean isList(@NotNull String path) { return actualList; } + /** + * Returns an optional containing the result of {@link #getList(String, Class)}. + * + * @param the type parameter + * @param path the path + * @param clazz the clazz + * @return the optional + */ + default @NotNull Optional> getListOptional(@NotNull String path, @NotNull Class clazz) { + return Optional.ofNullable(getList(path, clazz)); + } + /** * Returns an optional containing the result of {@link #get(String, Class)}. *