public static KameletModel parseKameletYaml()

in tooling/camel-kafka-connector-generator-maven-plugin/src/main/java/org/apache/camel/kafkaconnector/maven/utils/YamlKameletMapper.java [55:93]


    public static KameletModel parseKameletYaml(ObjectNode kameletYamlNode) {
        KameletModel km = new KameletModel();
        km.setType(kameletYamlNode.at("/metadata/labels/camel.apache.org~1kamelet.type").asText());

        km.setName(kameletYamlNode.at("/metadata/name").asText());

        km.setDescription(kameletYamlNode.at("/spec/definition/description").asText());

        Set<String> requiredProperties = new HashSet<>();
        kameletYamlNode.at("/spec/definition/required").forEach(req -> requiredProperties.add(req.asText()));
        km.setRequiredProperties(requiredProperties);

        Set<String> dependencies = new HashSet<>();
        kameletYamlNode.at("/spec/dependencies").forEach(req -> {
            if (req != null && !req.isNull()) {
                dependencies.add(req.asText());
            }
        });
        km.setDependencies(dependencies);

        List<KameletPropertyModel> kpms = new ArrayList<>();
        Iterator<Map.Entry<String, JsonNode>> it = kameletYamlNode.at("/spec/definition/properties").fields();
        while (it.hasNext()) {
            Map.Entry<String, JsonNode> property = it.next();
            KameletPropertyModel kpm = new KameletPropertyModel();
            kpm.setName(property.getKey());
            JsonNode propertyFields = property.getValue();
            kpm.setDefaultValue(propertyFields.get("default") != null ? propertyFields.get("default").asText() : null);
            kpm.setExample(propertyFields.get("example") != null ? propertyFields.get("example").asText() : null);
            kpm.setDescription(propertyFields.get("description") != null ? propertyFields.get("description").asText() : null);
            kpm.setFormat(propertyFields.get("format") != null ? propertyFields.get("format").asText() : null);
            kpm.setTitle(propertyFields.get("title") != null ? propertyFields.get("title").asText() : null);
            kpm.setType(propertyFields.get("type") != null ? propertyFields.get("type").asText() : null);
            kpms.add(kpm);
        }
        km.setProperties(kpms);

        return km;
    }