private String processTemplateString()

in spring-ai-alibaba-mcp/spring-ai-alibaba-mcp-nacos-dynamic-server/src/main/java/com/alibaba/cloud/ai/mcp/dynamic/server/callback/DynamicNacosToolCallbackV3.java [232:268]


	private String processTemplateString(String template, Map<String, Object> data) {
		logger.info("[processTemplateString] template: {} data: {}", template, data);
		if (template == null || template.isEmpty()) {
			return "";
		}
		Matcher matcher = TEMPLATE_PATTERN.matcher(template);
		StringBuilder result = new StringBuilder();
		while (matcher.find()) {
			String variable = matcher.group(1);
			String replacement;
			if ("".equals(variable) || ".".equals(variable)) {
				// 特殊处理{{.}},输出data唯一值或整个data
				if (data != null && data.size() == 1) {
					replacement = String.valueOf(data.values().iterator().next());
				}
				else if (data != null && !data.isEmpty()) {
					replacement = data.toString();
				}
				else {
					replacement = "";
				}
			}
			else {
				Object value = data != null ? data.get(variable) : null;
				replacement = (value != null) ? value.toString() : "";
			}
			matcher.appendReplacement(result, Matcher.quoteReplacement(replacement));
		}
		matcher.appendTail(result);
		String finalResult = result.toString();
		logger.info("[processTemplateString] final result: {}", finalResult);
		// 验证是否还存在未被替换的{{.}},如有则输出警告
		if (finalResult.contains("{{.}}")) {
			logger.warn("[processTemplateString] WARNING: {{.}} was not replaced in result: {}", finalResult);
		}
		return finalResult;
	}