in sarif/src/main/java/com/jetbrains/qodana/sarif/model/PropertyBag.java [159:192]
public PropertyBag read(JsonReader in) throws IOException {
JsonToken peek = in.peek();
if (peek == JsonToken.NULL) {
in.nextNull();
return null;
}
PropertyBag result = new PropertyBag();
Map<String, Object> serializedMap = new HashMap<>();
TypeAdapter<Object> objectTypeAdapter = gson.getAdapter(Object.class);
in.beginObject();
while (in.hasNext()) {
String key = in.nextName();
if (!ignoreKeys.contains(key)) {
Object value = objectTypeAdapter.read(in);
Object replaced = serializedMap.put(key, value);
if (replaced != null) {
throw new JsonSyntaxException("Duplicate key: " + key);
}
} else {
in.skipValue();
}
}
in.endObject();
Object tags = serializedMap.remove(TAGS_KEY);
result.putAll(serializedMap);
if (tags instanceof List) {
//noinspection unchecked
result.tags.addAll((Collection<? extends String>) tags);
}
return result;
}