private String generateModelApi()

in karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionApiGenerator.java [133:177]


    private String generateModelApi(String classFullName, JsonObject obj) {
        String className = classSimple(classFullName);

        JsonObject properties = obj.containsKey("oneOf")
                ? obj.getJsonArray("oneOf").getJsonObject(1).getJsonObject("properties")
                : obj.getJsonObject("properties");

        List<String> attrs = new ArrayList<>();
        AtomicBoolean hasId = new AtomicBoolean(false);
        if (properties != null) {
            properties.getMap().keySet().forEach(name -> {
                JsonObject aValue = properties.getJsonObject(name);
                if ("id".equals(name)) {
                    hasId.set(true);
                }
                if (isAttributeRefArray(aValue) && name.equals("steps") && ! className.equals("ChoiceDefinition") && ! className.equals("SwitchDefinition") && ! className.equals("KameletDefinition")) {
                    attrs.add("        def.steps = CamelDefinitionApi.createSteps(element?.steps);");
                } else if (isAttributeRefArray(aValue) && !name.equals("steps")) {
                    String code = String.format(
                            "        def.%1$s = element && element?.%1$s ? element?.%1$s.map((x:any) => CamelDefinitionApi.create%2$s(x)) :[];"
                            , name, getAttributeArrayClass(aValue));
                    attrs.add(code);
                } else if (isAttributeRef(aValue)
                        && !getAttributeClass(aValue).equals("SagaActionUriDefinition") // SagaActionUriDefinition is exception
                        && !getAttributeClass(aValue).equals("ToDefinition") // exception for ToDefinition (in REST Methods)
                        && !getAttributeClass(aValue).equals("ToDynamicDefinition") // exception for ToDynamicDefinition (in REST Methods)
                ) {
                    String attributeClass = getAttributeClass(aValue);
                    String template = attributeClass.equals("ExpressionDefinition")
                            ? "        def.%1$s = CamelDefinitionApi.create%2$s(element.%1$s); \n"
                            : "        if (element?.%1$s !== undefined) { \n" +
                            "            def.%1$s = CamelDefinitionApi.create%2$s(element.%1$s); \n" +
                            "        }";
                    String code = String.format(template, name, getAttributeClass(aValue));
                    attrs.add(code);
                } else {

                }
            });
        }
        String stringToRequired = getStringToRequired(obj, className);
        String s2 = stringToRequired.isEmpty() ? "" : "\n" + stringToRequired;
        String s3 = attrs.size() > 0 ? "\n" + attrs.stream().collect(Collectors.joining("\n")) : "";
        return String.format(readFileText(modelTemplate), className, s2, s3);
    }