diff --git a/src/main/java/net/triler/ConfigManager.java b/src/main/java/net/triler/ConfigManager.java index 2f7bd41..aa5cf04 100644 --- a/src/main/java/net/triler/ConfigManager.java +++ b/src/main/java/net/triler/ConfigManager.java @@ -5,20 +5,23 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; public class ConfigManager { + private final File file; private Map data = new LinkedHashMap<>(); private final Yaml yaml; public ConfigManager(File file) { this.file = file; - + // Configure YAML to look pretty and stay in order DumperOptions options = new DumperOptions(); options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); @@ -28,10 +31,14 @@ public class ConfigManager { // Load data from the file into memory public void load() { - if (!file.exists()) return; + if (!file.exists()) { + return; + } try (InputStream in = new FileInputStream(file)) { Map loaded = yaml.load(in); - if (loaded != null) this.data = loaded; + if (loaded != null) { + this.data = loaded; + } } catch (IOException e) { e.printStackTrace(); } @@ -67,11 +74,42 @@ public class ConfigManager { return val != null ? val.toString() : null; } + public List getStringList(String path) { + Object val = get(path); + if (val instanceof List) { + List list = new ArrayList<>(); + for (Object item : (List) val) { + if (item != null) { + list.add(item.toString()); + } + } + return list; + } + return new ArrayList<>(); // Return empty list instead of null to prevent NPEs + } + public int getInt(String path) { Object val = get(path); return val instanceof Number ? ((Number) val).intValue() : 0; } + public double getDouble(String path) { + Object val = get(path); + + if (val instanceof Number) { + return ((Number) val).doubleValue(); + } + + if (val instanceof String) { + try { + return Double.parseDouble((String) val); + } catch (NumberFormatException ignored) { + } + } + + return 0.0; + } + // The Set method: Also supports dot notation @SuppressWarnings("unchecked") public void set(String path, Object value) { @@ -83,4 +121,4 @@ public class ConfigManager { } pointer.put(keys[keys.length - 1], value); } -} \ No newline at end of file +} diff --git a/target/apidocs/allclasses-index.html b/target/apidocs/allclasses-index.html index c955148..7f79f07 100644 --- a/target/apidocs/allclasses-index.html +++ b/target/apidocs/allclasses-index.html @@ -1,7 +1,7 @@ - + All Classes and Interfaces (yml-manager 0.1 API) diff --git a/target/apidocs/allpackages-index.html b/target/apidocs/allpackages-index.html index 786c0c0..2863fbe 100644 --- a/target/apidocs/allpackages-index.html +++ b/target/apidocs/allpackages-index.html @@ -1,7 +1,7 @@ - + All Packages (yml-manager 0.1 API) diff --git a/target/apidocs/help-doc.html b/target/apidocs/help-doc.html index 6c856b4..7d89b0a 100644 --- a/target/apidocs/help-doc.html +++ b/target/apidocs/help-doc.html @@ -1,7 +1,7 @@ - + API Help (yml-manager 0.1 API) diff --git a/target/apidocs/index-all.html b/target/apidocs/index-all.html index 8cee4a3..f2adcd1 100644 --- a/target/apidocs/index-all.html +++ b/target/apidocs/index-all.html @@ -1,7 +1,7 @@ - + Index (yml-manager 0.1 API) @@ -62,6 +62,8 @@ loadScripts(document, 'script');
get(String) - Method in class net.triler.ConfigManager
 
+
getDouble(String) - Method in class net.triler.ConfigManager
+
 
getInt(String) - Method in class net.triler.ConfigManager
 
getString(String) - Method in class net.triler.ConfigManager
diff --git a/target/apidocs/index.html b/target/apidocs/index.html index f73353b..9c2104e 100644 --- a/target/apidocs/index.html +++ b/target/apidocs/index.html @@ -1,7 +1,7 @@ - + yml-manager 0.1 API diff --git a/target/apidocs/member-search-index.js b/target/apidocs/member-search-index.js index db248c3..9e1700c 100644 --- a/target/apidocs/member-search-index.js +++ b/target/apidocs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"net.triler","c":"ConfigManager","l":"ConfigManager(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"net.triler","c":"ConfigManager","l":"get(String)","u":"get(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getInt(String)","u":"getInt(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getString(String)","u":"getString(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"load()"},{"p":"net.triler","c":"ConfigManager","l":"save()"},{"p":"net.triler","c":"ConfigManager","l":"set(String, Object)","u":"set(java.lang.String,java.lang.Object)"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"net.triler","c":"ConfigManager","l":"ConfigManager(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"net.triler","c":"ConfigManager","l":"get(String)","u":"get(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getDouble(String)","u":"getDouble(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getInt(String)","u":"getInt(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getString(String)","u":"getString(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"load()"},{"p":"net.triler","c":"ConfigManager","l":"save()"},{"p":"net.triler","c":"ConfigManager","l":"set(String, Object)","u":"set(java.lang.String,java.lang.Object)"}];updateSearchResults(); \ No newline at end of file diff --git a/target/apidocs/net/triler/ConfigManager.html b/target/apidocs/net/triler/ConfigManager.html index b0ac5e8..05d610c 100644 --- a/target/apidocs/net/triler/ConfigManager.html +++ b/target/apidocs/net/triler/ConfigManager.html @@ -1,7 +1,7 @@ - + ConfigManager (yml-manager 0.1 API) @@ -122,22 +122,25 @@ loadScripts(document, 'script');
get(String path)
 
-
int
-
getInt(String path)
+
double
+
 
- - +
int
+
getInt(String path)
 
-
void
- + +
 
void
- +
 
void
-
set(String path, - Object value)
+
 
+
void
+
set(String path, + Object value)
+
 
@@ -200,6 +203,12 @@ loadScripts(document, 'script');
  • +
    +

    getDouble

    +
    public double getDouble(String path)
    +
    +
  • +
  • set

    public void set(String path, diff --git a/target/apidocs/net/triler/class-use/ConfigManager.html b/target/apidocs/net/triler/class-use/ConfigManager.html index 484bf30..50bc732 100644 --- a/target/apidocs/net/triler/class-use/ConfigManager.html +++ b/target/apidocs/net/triler/class-use/ConfigManager.html @@ -1,7 +1,7 @@ - + Uses of Class net.triler.ConfigManager (yml-manager 0.1 API) diff --git a/target/apidocs/net/triler/package-summary.html b/target/apidocs/net/triler/package-summary.html index 45b3212..964749c 100644 --- a/target/apidocs/net/triler/package-summary.html +++ b/target/apidocs/net/triler/package-summary.html @@ -1,7 +1,7 @@ - + net.triler (yml-manager 0.1 API) diff --git a/target/apidocs/net/triler/package-tree.html b/target/apidocs/net/triler/package-tree.html index 8ab7832..5588cee 100644 --- a/target/apidocs/net/triler/package-tree.html +++ b/target/apidocs/net/triler/package-tree.html @@ -1,7 +1,7 @@ - + net.triler Class Hierarchy (yml-manager 0.1 API) diff --git a/target/apidocs/net/triler/package-use.html b/target/apidocs/net/triler/package-use.html index c6e391c..9c8ce4b 100644 --- a/target/apidocs/net/triler/package-use.html +++ b/target/apidocs/net/triler/package-use.html @@ -1,7 +1,7 @@ - + Uses of Package net.triler (yml-manager 0.1 API) diff --git a/target/apidocs/overview-tree.html b/target/apidocs/overview-tree.html index 3500a98..5db0d5d 100644 --- a/target/apidocs/overview-tree.html +++ b/target/apidocs/overview-tree.html @@ -1,7 +1,7 @@ - + Class Hierarchy (yml-manager 0.1 API) diff --git a/target/apidocs/search.html b/target/apidocs/search.html index fd6d22e..5fb2b1c 100644 --- a/target/apidocs/search.html +++ b/target/apidocs/search.html @@ -1,7 +1,7 @@ - + Search (yml-manager 0.1 API) diff --git a/target/classes/net/triler/ConfigManager.class b/target/classes/net/triler/ConfigManager.class index 74563e8..5365e60 100644 Binary files a/target/classes/net/triler/ConfigManager.class and b/target/classes/net/triler/ConfigManager.class differ diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt index 070b73f..96b36a7 100644 --- a/target/maven-javadoc-plugin-stale-data.txt +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -28,22 +28,22 @@ net.triler /config/.m2/repository/org/yaml/snakeyaml/2.3/snakeyaml-2.3.jar = 1725124922000 /config/workspace/yml-manager/src/main/java = 1765997171089 /config/workspace/yml-manager/target/generated-sources/annotations = 1765997340661 -/config/workspace/yml-manager/target/apidocs/copy.svg = 1765998493924 -/config/workspace/yml-manager/target/apidocs/help-doc.html = 1765998493919 -/config/workspace/yml-manager/target/apidocs/link.svg = 1765998493925 -/config/workspace/yml-manager/target/apidocs/allclasses-index.html = 1765998493881 -/config/workspace/yml-manager/target/apidocs/overview-tree.html = 1765998493865 -/config/workspace/yml-manager/target/apidocs/search.js = 1765998493926 -/config/workspace/yml-manager/target/apidocs/tag-search-index.js = 1765998493888 -/config/workspace/yml-manager/target/apidocs/index-all.html = 1765998493901 -/config/workspace/yml-manager/target/apidocs/type-search-index.js = 1765998493887 -/config/workspace/yml-manager/target/apidocs/member-search-index.js = 1765998493888 -/config/workspace/yml-manager/target/apidocs/search.html = 1765998493904 -/config/workspace/yml-manager/target/apidocs/index.html = 1765998493906 -/config/workspace/yml-manager/target/apidocs/allpackages-index.html = 1765998493884 -/config/workspace/yml-manager/target/apidocs/stylesheet.css = 1765998493922 -/config/workspace/yml-manager/target/apidocs/search-page.js = 1765998493927 -/config/workspace/yml-manager/target/apidocs/script.js = 1765998493923 -/config/workspace/yml-manager/target/apidocs/module-search-index.js = 1765998493885 -/config/workspace/yml-manager/target/apidocs/package-search-index.js = 1765998493887 -/config/workspace/yml-manager/target/apidocs/element-list = 1765998493833 +/config/workspace/yml-manager/target/apidocs/copy.svg = 1766001440352 +/config/workspace/yml-manager/target/apidocs/help-doc.html = 1766001440347 +/config/workspace/yml-manager/target/apidocs/link.svg = 1766001440352 +/config/workspace/yml-manager/target/apidocs/allclasses-index.html = 1766001440319 +/config/workspace/yml-manager/target/apidocs/overview-tree.html = 1766001440308 +/config/workspace/yml-manager/target/apidocs/search.js = 1766001440355 +/config/workspace/yml-manager/target/apidocs/tag-search-index.js = 1766001440326 +/config/workspace/yml-manager/target/apidocs/index-all.html = 1766001440335 +/config/workspace/yml-manager/target/apidocs/type-search-index.js = 1766001440325 +/config/workspace/yml-manager/target/apidocs/member-search-index.js = 1766001440325 +/config/workspace/yml-manager/target/apidocs/search.html = 1766001440338 +/config/workspace/yml-manager/target/apidocs/index.html = 1766001440341 +/config/workspace/yml-manager/target/apidocs/allpackages-index.html = 1766001440323 +/config/workspace/yml-manager/target/apidocs/stylesheet.css = 1766001440351 +/config/workspace/yml-manager/target/apidocs/search-page.js = 1766001440358 +/config/workspace/yml-manager/target/apidocs/script.js = 1766001440352 +/config/workspace/yml-manager/target/apidocs/module-search-index.js = 1766001440324 +/config/workspace/yml-manager/target/apidocs/package-search-index.js = 1766001440324 +/config/workspace/yml-manager/target/apidocs/element-list = 1766001440276 diff --git a/target/original-yml-manager-0.1.jar b/target/original-yml-manager-0.1.jar index 6a693bc..fe10bcf 100644 Binary files a/target/original-yml-manager-0.1.jar and b/target/original-yml-manager-0.1.jar differ diff --git a/target/yml-manager-0.1-javadoc.jar b/target/yml-manager-0.1-javadoc.jar index b15a56b..bd42d09 100644 Binary files a/target/yml-manager-0.1-javadoc.jar and b/target/yml-manager-0.1-javadoc.jar differ diff --git a/target/yml-manager-0.1-sources.jar b/target/yml-manager-0.1-sources.jar index 0495f98..d1de438 100644 Binary files a/target/yml-manager-0.1-sources.jar and b/target/yml-manager-0.1-sources.jar differ diff --git a/target/yml-manager-0.1.jar b/target/yml-manager-0.1.jar index 6a693bc..07215fb 100644 Binary files a/target/yml-manager-0.1.jar and b/target/yml-manager-0.1.jar differ