public static String getString(Map<String, Object> configuration, String key, String def) { Object val = getValue(configuration, key); if (val instanceof String) { return (String) val; } return def; }
public static boolean getBoolean(Map<String, Object> configuration, String key, boolean def) { Object val = getValue(configuration, key); if (val instanceof Boolean) { return ((Boolean) val).booleanValue(); } if (val instanceof String) { return Boolean.parseBoolean((String) val); } return def; }
public static int getInt(Map<String, Object> configuration, String key, int def) { Object val = getValue(configuration, key); if (val instanceof Number) { return ((Number) val).intValue(); } else if (val instanceof String) { try { return Integer.parseInt((String) val); } catch (NumberFormatException nfe) { JavaLanguageServerPlugin.logError(key + " value (" + val + ") is not an int, falling back on " + def); } } return def; }
public static List<String> getList(Map<String, Object> configuration, String key, List<String> def) { Object val = getValue(configuration, key); if (val instanceof String) { if (!((String) val).trim().startsWith("[")) { val = '[' + (String) val + ']'; } try { Gson gson = new Gson(); Type type = new TypeToken<List<String>>() { }.getType(); List<String> list = gson.fromJson((String) val, type); return list; } catch (JsonSyntaxException e) { JavaLanguageServerPlugin.logException(e.getMessage(), e); return def; } } if (val instanceof List) { List<String> ret; try { ret = (List<String>) val; return ret; } catch (Exception e) { JavaLanguageServerPlugin.logException(e.getMessage(), e); } } return def; }