diff options
author | Pavel Aharoni <pa0916@att.com> | 2017-05-24 13:23:12 +0300 |
---|---|---|
committer | Pavel Aharoni <pa0916@att.com> | 2017-05-24 13:23:12 +0300 |
commit | 9e430cd9d4722c3e614c8a2fd822cff1604be1f2 (patch) | |
tree | 565af8e16f17ae46bc901093aded0e19ac1b4c1f /sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java | |
parent | 67a7f1d57b6b1d7c07dc3da4db51a387f90fef28 (diff) |
[SDC-24] error handling
Change-Id: Iac97052fab32f638d4cf52b094caad31f6d76902
Signed-off-by: Pavel Aharoni <pa0916@att.com>
Diffstat (limited to 'sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java')
-rw-r--r-- | sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java | 83 |
1 files changed, 71 insertions, 12 deletions
diff --git a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java index 7cd9ed2..e83e6aa 100644 --- a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java +++ b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java @@ -8,18 +8,44 @@ import org.slf4j.LoggerFactory; import java.io.IOException; import java.net.URL; +import java.util.HashMap; +import java.util.Map; + public class ConfigurationManager { private static Logger log = LoggerFactory.getLogger(ConfigurationManager.class.getName()); - private static final String CONFIGURATION_FILE = "config/configuration.yaml"; + private static final String CONFIGURATION_DIR = "config/"; private static volatile ConfigurationManager instance; - private Configuration configuration; +// private Configuration configuration; +// private ErrorConfiguration errorConfiguration; + + Map<String, Object> configurations = new HashMap<String, Object>(); + + + private ConfigurationManager() { + initialConfigObjectsFromFiles(); + } + + private void initialConfigObjectsFromFiles() { + loadConfigurationClass(ErrorConfiguration.class); + loadConfigurationClass(Configuration.class); + } - private ConfigurationManager() { - URL url = Resources.getResource(CONFIGURATION_FILE); + private <T> void loadConfigurationClass(Class<T> clazz) { + T object = getObjectFromYaml(clazz); + configurations.put(clazz.getSimpleName(), object); + } + + + public <T> T getObjectFromYaml(Class<T> className) { + + + String configFileName = calculateFileName(className); + + URL url = Resources.getResource(CONFIGURATION_DIR + configFileName); String configFileContents = null; try { configFileContents = Resources.toString(url, Charsets.UTF_8); @@ -27,17 +53,16 @@ public class ConfigurationManager { log.error("ConfigurationManager - Failed to load configuration file"); } YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter(); - this.configuration = yamlToObjectConverter.convertFromString(configFileContents, Configuration.class); - } + T object = yamlToObjectConverter.convertFromString(configFileContents, className); - public Configuration getConfiguration() { - return configuration; + return object; } + public static ConfigurationManager getInstance() { if (instance == null) { - synchronized (ConfigurationManager.class){ - if (instance == null){ + synchronized (ConfigurationManager.class) { + if (instance == null) { instance = new ConfigurationManager(); } } @@ -45,7 +70,41 @@ public class ConfigurationManager { return instance; } - public void setConfiguration(Configuration configuration) { - this.configuration = configuration; + private static <T> String calculateFileName(Class<T> className) { + + String[] words = className.getSimpleName().split("(?=\\p{Upper})"); + + StringBuilder builder = new StringBuilder(); + + // There cannot be a null value returned from "split" - words != null is + // redundant + // if (words != null) { + boolean isFirst = true; + for (int i = 0; i < words.length; i++) { + + String word = words[i]; + if (word != null && !word.isEmpty()) { + if (!isFirst) { + builder.append("-"); + } else { + isFirst = false; + } + builder.append(words[i].toLowerCase()); + } + } + return builder.toString() + ".yaml"; + + /* + * } else { return className.getSimpleName().toLowerCase() + Constants.YAML_SUFFIX; } + */ + + } + + public ErrorConfiguration getErrorConfiguration() { + return (ErrorConfiguration) configurations.get((ErrorConfiguration.class.getSimpleName())); + } + + public Configuration getConfiguration() { + return (Configuration) configurations.get((Configuration.class.getSimpleName())); } } |