in server/src/main/java/com/epam/aidial/core/server/util/ApplicationTypeSchemaUtils.java [196:217]
public static void replaceLinksInJsonNode(JsonNode node, Map<String, String> replacementLinks, JsonNode parent, String fieldName) {
if (node.isObject()) {
node.fields().forEachRemaining(entry -> replaceLinksInJsonNode(entry.getValue(), replacementLinks, node, entry.getKey()));
} else if (node.isArray()) {
for (int i = 0; i < node.size(); i++) {
JsonNode childNode = node.get(i);
if (childNode.isTextual()) {
String replacement = replacementLinks.get(childNode.textValue());
if (replacement != null) {
((ArrayNode) node).set(i, replacement);
}
} else {
replaceLinksInJsonNode(childNode, replacementLinks, node, String.valueOf(i));
}
}
} else if (node.isTextual()) {
String replacement = replacementLinks.get(node.textValue());
if (replacement != null && parent.isObject()) {
((ObjectNode) parent).put(fieldName, replacement);
}
}
}