io.swagger.util.BaseReaderUtils Maven / Gradle / Ivy
The newest version!
package io.swagger.util;
import io.swagger.oas.annotations.extensions.Extension;
import io.swagger.oas.annotations.extensions.ExtensionProperty;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.Map;
/**
* The BaseReaderUtils
class is utility class which helps read annotations to the OpenApi.
*/
public final class BaseReaderUtils {
private BaseReaderUtils() {
}
/**
* Collects extensions.
*
* @param extensions is an array of extensions
* @return the map with extensions
*/
public static Map parseExtensions(Extension[] extensions) {
final Map map = new HashMap();
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();
map.put(key, value);
}
@SuppressWarnings("unchecked")
final Map mapValue = (Map) value;
mapValue.put(propertyName, propertyValue);
}
}
}
}
return map;
}
}