package com.azimo.tool.config; import com.azimo.tool.config.mapper.ConfigFileReader; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.List; /** * Created by F1sherKK on 18/01/17. */ public class AppConfigLoader { public static final String CONFIG_FILE_PATH = "config.properties"; public static final String LABEL_CONFIG_PROPERTIES = "config.dir="; private ConfigFileReader configFileReader; public AppConfigLoader(ConfigFileReader configFileReader) { this.configFileReader = configFileReader; } public AppConfig init() { HashMap<AppConfigKey, String> configMap = new HashMap<>(); try { String fileConfigPath = configFileReader.getConfigFilePath(CONFIG_FILE_PATH, LABEL_CONFIG_PROPERTIES); List<String> configList = configFileReader.readFile(fileConfigPath); List<AppConfigKey> keyList = Arrays.asList(AppConfigKey.values()); readConfigValuesToMap(configMap, configList, keyList); } catch (IOException e) { e.printStackTrace(); } AppConfig appConfig = new AppConfig(); appConfig.init(configMap); return appConfig; } private void readConfigValuesToMap(HashMap<AppConfigKey, String> configMap, List<String> configList, List<AppConfigKey> keyList) { for (AppConfigKey key : keyList) { for (String line : configList) { String value = configFileReader.readValueForKey(line, key.toLabel()); if (value != null) { configMap.put(key, value); } } } } }