package io.swagger.util;
import io.swagger.annotations.Extension;
import io.swagger.annotations.ExtensionProperty;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.Map;
/**
* The <code>BaseReaderUtils</code> class is utility class which helps read annotations to the Swagger.
*/
public final class BaseReaderUtils {
private BaseReaderUtils() {
}
/**
* Collects extensions.
*
* @param extensions is an array of extensions
* @return the map with extensions
*/
public static Map<String, Object> parseExtensions(Extension[] extensions) {
final Map<String, Object> map = new HashMap<String, Object>();
for (Extension extension : extensions) {
final String name = extension.name();
final String key = name.length() > 0 ? StringUtils.prependIfMissing(name, "x-") : name;
for (ExtensionProperty property : extension.properties()) {
final String propertyName = property.name();
final String propertyValue = property.value();
if (StringUtils.isNotBlank(propertyName) && StringUtils.isNotBlank(propertyValue)) {
if (key.isEmpty()) {
map.put(StringUtils.prependIfMissing(propertyName, "x-"), propertyValue);
} else {
Object value = map.get(key);
if (value == null || !(value instanceof Map)) {
value = new HashMap<String, Object>();
map.put(key, value);
}
@SuppressWarnings("unchecked")
final Map<String, Object> mapValue = (Map<String, Object>) value;
mapValue.put(propertyName, propertyValue);
}
}
}
}
return map;
}
}