public MergeableConfig load(InputStream inputStream){ Map<String, Object> newConf = (Map<String, Object>) yaml.load(inputStream); deepMerge( conf, newConf ); return this; }
private static boolean shouldMergeAnyWay(Map original, Object currentKey, Object currentValue ){ if (original.containsKey(currentKey)) { Object originalValue = original.get(currentKey); if (originalValue instanceof Collection) { checkArgument(currentValue instanceof Collection, "A non-collection collided with a collection: %s\t%s",currentValue, originalValue); ((Collection) originalValue).addAll((Collection) currentValue); return false; } if (originalValue instanceof Map) { checkArgument(currentValue instanceof Map, "A non-map collided with a map: %s\t%s", currentValue, originalValue); deepMerge((Map) originalValue, (Map) currentValue); return false; } } return true; }