Search in sources :

Example 1 with ExtensionProperty

use of io.swagger.annotations.ExtensionProperty in project swagger-core by swagger-api.

the class BaseReaderUtils method parseExtensions.

/**
     * 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;
}
Also used : Extension(io.swagger.annotations.Extension) ExtensionProperty(io.swagger.annotations.ExtensionProperty) HashMap(java.util.HashMap) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

Extension (io.swagger.annotations.Extension)1 ExtensionProperty (io.swagger.annotations.ExtensionProperty)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1