package husacct.control.task.configuration; import husacct.common.OSDetector; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Properties; public class ConfigurationManager { private final static Properties properties = loadProperties(); private final static ArrayList<IConfigListener> listeners = new ArrayList<IConfigListener>(); public static String getProperty(String key) { if(properties.containsKey(key)) return properties.getProperty(key); else return ""; } public static void setProperty(String key, String value) { properties.setProperty(key, value); } public static void setPropertyIfEmpty(String key, String value) { if(!properties.containsKey(key) || properties.getProperty(key).equals("")) properties.setProperty(key, value); } private static Properties loadProperties() { Properties props = new Properties(); try { File directory = new File(OSDetector.getAppFolder()); File file = new File(OSDetector.getAppFolder() + "/" + "config.properties"); if(!directory.exists()) { directory.mkdir(); file.createNewFile(); } props.load(new FileInputStream(file)); } catch (IOException e) { e.printStackTrace(); } return props; } public static void storeProperties() { storeProperties(properties); } public static void storeProperties(Properties props) { try { props.store(new FileOutputStream(OSDetector.getAppFolder() + "/" + "config.properties"), null); } catch (IOException e) { e.printStackTrace(); } } public static void notifyListeners() { for(IConfigListener event : listeners) event.onConfigUpdate(); } public static void addListener(IConfigListener event) { listeners.add(event); } }