All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin Maven / Gradle / Ivy

package io.zenwave360.sdk.plugins;

import java.util.Map;

import io.zenwave360.sdk.Plugin;
import io.zenwave360.sdk.doc.DocumentedPlugin;
import io.zenwave360.sdk.formatters.JavaFormatter;
import io.zenwave360.sdk.parsers.ZDLParser;
import io.zenwave360.sdk.processors.ZDLProcessor;
import io.zenwave360.sdk.writers.TemplateFileWriter;
import io.zenwave360.sdk.writers.TemplateStdoutWriter;

@DocumentedPlugin(value = "Generates a full AsyncAPI definitions for CRUD operations from JDL models", shortCode = "jdl-to-asyncapi")
public class JDLToAsyncAPIPlugin extends Plugin {

    public JDLToAsyncAPIPlugin() {
        super();
        withChain(ZDLParser.class, ZDLProcessor.class, JDLToAsyncAPIGenerator.class, TemplateFileWriter.class);
    }

    @Override
    public Plugin withOptions(Map options) {
        if (!options.containsKey("targetFolder") && !options.containsKey("targetFile")) {
            withChain(ZDLParser.class, ZDLProcessor.class, JDLToAsyncAPIGenerator.class, JavaFormatter.class, TemplateStdoutWriter.class);
        }
        return super.withOptions(options);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy