in xtable-core/src/main/java/org/apache/xtable/delta/DeltaStatsExtractor.java [163:187]
private void insertValueAtPath(Map<String, Object> jsonObject, String[] pathParts, Object value) {
if (pathParts == null || pathParts.length == 0) {
return;
}
Map<String, Object> currObject = jsonObject;
for (int i = 0; i < pathParts.length; i++) {
String part = pathParts[i];
if (i == pathParts.length - 1) {
currObject.put(part, value);
} else {
if (!currObject.containsKey(part)) {
currObject.put(part, new HashMap<String, Object>());
}
try {
currObject = (HashMap<String, Object>) currObject.get(part);
} catch (ClassCastException e) {
throw new RuntimeException(
String.format(
"Cannot cast to hashmap while inserting stats at path %s",
String.join("->", pathParts)),
e);
}
}
}
}