package resa.evaluation.topology.tomVLD; import backtype.storm.Config; import org.yaml.snakeyaml.Yaml; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Config manager provides methods to load a storm config from a file and access its content. */ public class StormConfigManager { /** * Read config from file path * @param path - the path to the file containing yaml config * @return the Config for this file * @throws FileNotFoundException */ public static Config readConfig(String path) throws FileNotFoundException { Config config = new Config(); Yaml yaml = new Yaml(); InputStream inputStream = new FileInputStream(new File(path)); HashMap<String, Object> map = (HashMap<String, Object>)yaml.load(inputStream); config.putAll(map); return config; } public static int getInt(Map<String, Object> config, String key) { Object obj = config.get(key); if (obj instanceof Integer) return (Integer)obj; return ((Long)config.get(key)).intValue(); } public static String getString(Map<String, Object> config, String key) { return (String)config.get(key); } public static List<String> getListOfStrings(Map<String, Object> config, String key) { return (List<String>)config.get(key); } }