public Data parse()

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