package io.swagger.model.override; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class GenericModel { private static final Map<String, Class<?>> additionalPropertyTypes = new HashMap<String, Class<?>>(); private Map<String, Object> additionalProperties; public static void declareProperty(String key, Class<?> cls) { additionalPropertyTypes.put(key, cls); } public static Map<String, Class<?>> getDeclaredProperties() { return Collections.unmodifiableMap(additionalPropertyTypes); } public static void undeclareProperty(String key) { additionalPropertyTypes.remove(key); } public void setProperty(String key, Object value) { if (value == null || additionalPropertyTypes.get(key).isAssignableFrom(value.getClass())) { additionalProperties.put(key, value); } } public Object getProperty(String key) { return additionalProperties.get(key); } }