public static void replaceLinksInJsonNode()

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);
            }
        }
    }