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; }