
io.zenwave360.generator.plugins.OpenAPIToJDLGenerator Maven / Gradle / Ivy
package io.zenwave360.generator.plugins;
import static org.apache.commons.lang3.StringUtils.capitalize;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.zenwave360.generator.doc.DocumentedOption;
import io.zenwave360.generator.generators.AbstractJDLGenerator;
import io.zenwave360.generator.templating.HandlebarsEngine;
import io.zenwave360.generator.templating.OutputFormatType;
import io.zenwave360.generator.templating.TemplateEngine;
import io.zenwave360.generator.templating.TemplateInput;
import io.zenwave360.generator.templating.TemplateOutput;
import io.zenwave360.generator.utils.JSONPath;
public class OpenAPIToJDLGenerator extends AbstractJDLGenerator {
public String sourceProperty = "api";
@DocumentedOption(description = "Entities to generate code for")
public List entities = new ArrayList<>();
@DocumentedOption(description = "Target file")
public String targetFile = "entities.jdl";
@DocumentedOption(description = "Whether to use JDL relationships or plain field")
public boolean useRelationships = true;
public OpenAPIToJDLGenerator withSourceProperty(String sourceProperty) {
this.sourceProperty = sourceProperty;
return this;
}
private HandlebarsEngine handlebarsEngine = new HandlebarsEngine();
private final TemplateInput openAPIToJDLTemplate = new TemplateInput("io/zenwave360/generator/plugins/OpenAPIToJDLGenerator/OpenAPIToJDL.jdl", "{{targetFile}}").withMimeType(OutputFormatType.JDL);
protected Map getOpenAPIModel(Map contextModel) {
return (Map) contextModel.get(sourceProperty);
}
@Override
public List generate(Map contextModel) {
List templateOutputList = new ArrayList<>();
Map openAPIModel = getOpenAPIModel(contextModel);
Map jdlModel = new HashMap<>();
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy