From 0291629ccd814480fd1d8bbbedac67d9d60e5455 Mon Sep 17 00:00:00 2001 From: Niklas der Graf Date: Tue, 11 Apr 2017 22:51:25 +0200 Subject: [PATCH] Added the ability to create yaml hierachy using camel case, because underscores look ugly :) --- .../cubespace/Yamler/Config/ConfigMode.java | 1 + .../cubespace/Yamler/Config/YamlConfig.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/ConfigMode.java b/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/ConfigMode.java index 26dbb7d..a6e116b 100644 --- a/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/ConfigMode.java +++ b/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/ConfigMode.java @@ -6,5 +6,6 @@ public enum ConfigMode { DEFAULT, PATH_BY_UNDERSCORE, + PATH_BY_CAMEL_CASE, FIELD_IS_KEY } diff --git a/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/YamlConfig.java b/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/YamlConfig.java index 6b69940..43e50d6 100644 --- a/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/YamlConfig.java +++ b/Yamler-Core/src/main/java/net/cubespace/Yamler/Config/YamlConfig.java @@ -52,6 +52,9 @@ private void internalSave(Class clazz) throws InvalidConfigurationException { case FIELD_IS_KEY: path = field.getName(); break; + case PATH_BY_CAMEL_CASE: + path = getCamelCasePath(field.getName()); + break; case DEFAULT: default: String fieldName = field.getName(); @@ -214,4 +217,26 @@ public void load(File file) throws InvalidConfigurationException { CONFIG_FILE = file; load(); } + + /** + * Converts the name of a field to a YAML Path, e.g. databaseUsername --> database.Username + * by GitGraf + * @param fieldName The name of the field that needs to be converted + * @return A dot seperated yaml path + */ + private String getCamelCasePath(String fieldName) + { + StringBuffer pathBuffer = new StringBuffer(); + char[] fieldArray = fieldName.toCharArray(); + for(int i = 0; i < fieldArray.length; i++) { + + if(Character.isUpperCase(fieldArray[i])) { + pathBuffer.append("."); + } + + pathBuffer.append(fieldArray[i]); + + } + return pathBuffer.toString(); + } }