static void serialize()

in tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java [184:225]


    static void serialize(final Path catalogPath, ArtifactModel<?> model) {
        String kind = model.getKind() == Kind.console ? "dev-consoles" : model.getKind().toString() + "s";
        final Path out = catalogPath.resolve(kind)
                .resolve(model.getName().replace(":", "-") + ".json");
        try {
            Files.createDirectories(out.getParent());
        } catch (IOException e) {
            throw new RuntimeException("Could not create " + out.getParent(), e);
        }
        String rawJson;
        switch (model.getKind()) {
        case bean:
            rawJson = JsonMapper.createParameterJsonSchema((PojoBeanModel) model);
            break;
        case component:
            rawJson = JsonMapper.createParameterJsonSchema((ComponentModel) model);
            break;
        case console:
            rawJson = JsonMapper.createParameterJsonSchema((DevConsoleModel) model);
            break;
        case dataformat:
            rawJson = JsonMapper.createParameterJsonSchema((DataFormatModel) model);
            break;
        case language:
            rawJson = JsonMapper.createParameterJsonSchema((LanguageModel) model);
            break;
        case transformer:
            rawJson = JsonMapper.createParameterJsonSchema((TransformerModel) model);
            break;
        case other:
            rawJson = JsonMapper.createJsonSchema((OtherModel) model);
            break;
        default:
            throw new IllegalStateException("Cannot serialize kind " + model.getKind());
        }

        try {
            Files.write(out, rawJson.getBytes(StandardCharsets.UTF_8));
        } catch (IOException e) {
            throw new RuntimeException("Could not write to " + out, e);
        }
    }