in common/src/main/java/org/apache/rocketmq/eventbridge/tools/transform/StringSubstitutorTemplate.java [57:85]
public Data parse(List<Variable> variableList) {
Map<String, String> valuesMap = variableList.stream()
.filter(variable -> variable.getValue() != null)
.collect(Collectors.toMap(Variable::getName, Variable::defaultStringValue));
StringSubstitutor sub = new StringSubstitutor(valuesMap);
log.debug("template: " + outputTemplate);
List<Map.Entry<String, JsonElement>> jsonTemplateEntryList = getAndCheckEmbedObject();
if (jsonTemplateEntryList.size() > 0) {
for (Map.Entry<String, JsonElement> entry : jsonTemplateEntryList) {
String key = removeVariableMark(entry.getValue().getAsJsonObject().get(EB_SYS_EMBED_OBJECT).getAsString());
JsonObject embedJsonObject = entry.getValue().getAsJsonObject();
if (!valuesMap.containsKey(key) || Strings.isNullOrEmpty(valuesMap.get(key))) {
entry.getValue().getAsJsonObject().remove(EB_SYS_EMBED_OBJECT);
continue;
}
JsonElement jsonValues = JsonParser.parseString(valuesMap.get(key));
if (jsonValues.isJsonObject()) {
for (Map.Entry<String, JsonElement> elementEntry : jsonValues.getAsJsonObject().entrySet()) {
embedJsonObject.add(elementEntry.getKey(), elementEntry.getValue());
}
entry.getValue().getAsJsonObject().remove(EB_SYS_EMBED_OBJECT);
jsonObject = entry.getValue().getAsJsonObject();
}
}
return new StringData(sub.replace(jsonObject.toString()));
}
return new StringData(sub.replace(outputTemplate));
}