package org.leolo.rail.nrd; import java.io.FileReader; import java.io.IOException; import java.util.Properties; import java.util.function.BiConsumer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class ConfigurationManager { private static Logger log = LogManager.getLogger(ConfigurationManager.class); private static ConfigurationManager instance; private Properties prop = new Properties(); public synchronized static ConfigurationManager getInstance() { if(instance==null) { instance = new ConfigurationManager(); } return instance; } private ConfigurationManager() { try(FileReader fr = new FileReader("configuration.properties")){ log.debug("Loading properties file"); prop.load(fr); log.info("{} entries loaded", prop.size()); }catch(IOException e) { log.fatal(e.getMessage(), e); System.exit(1); } } public void forEach(BiConsumer action) { prop.forEach(action); } public Object get(Object key) { return prop.get(key); } public Object getOrDefault(Object key, Object defaultValue) { return prop.getOrDefault(key, defaultValue); } public String getProperty(String key, String defaultValue) { return prop.getProperty(key, defaultValue); } public String getProperty(String key) { return prop.getProperty(key); } public int size() { return prop.size(); } public boolean containsKey(Object key) { return prop.containsKey(key); } }