From 34e58389241e0865bee6e5c1c75608e792f7d07a Mon Sep 17 00:00:00 2001 From: ToreJohansson Date: Wed, 2 Aug 2017 10:14:34 +0200 Subject: [PATCH] Added all models to postProcessOperations (#6194) * Added all models to postProcessOperations * Added new postProcessOperationsWithModels --- .../io/swagger/codegen/CodegenConfig.java | 14 ++-- .../io/swagger/codegen/DefaultCodegen.java | 55 +++++++++------- .../io/swagger/codegen/DefaultGenerator.java | 64 ++++++++++++++----- 3 files changed, 86 insertions(+), 47 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConfig.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConfig.java index 36b3dffbe47a..bd44d7a39790 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConfig.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConfig.java @@ -1,17 +1,17 @@ package io.swagger.codegen; -import io.swagger.models.Model; -import io.swagger.models.Operation; -import io.swagger.models.Swagger; -import io.swagger.models.auth.SecuritySchemeDefinition; -import io.swagger.models.properties.Property; - import java.util.List; import java.util.Map; import java.util.Set; import com.samskivert.mustache.Mustache.Compiler; +import io.swagger.models.Model; +import io.swagger.models.Operation; +import io.swagger.models.Swagger; +import io.swagger.models.auth.SecuritySchemeDefinition; +import io.swagger.models.properties.Property; + public interface CodegenConfig { CodegenType getTag(); @@ -153,6 +153,8 @@ public interface CodegenConfig { Map postProcessOperations(Map objs); + Map postProcessOperationsWithModels(Map objs, List allModels); + Map postProcessSupportingFileData(Map objs); void postProcessModelProperty(CodegenModel model, CodegenProperty property); diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index 00247e6fef5b..80b49dff81a6 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -1,5 +1,30 @@ package io.swagger.codegen; +import javax.annotation.Nullable; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Objects; +import java.util.Set; +import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.common.base.Function; import com.google.common.collect.Lists; import com.samskivert.mustache.Mustache.Compiler; @@ -48,30 +73,6 @@ import io.swagger.models.properties.RefProperty; import io.swagger.models.properties.StringProperty; import io.swagger.models.properties.UUIDProperty; import io.swagger.util.Json; -import org.apache.commons.lang3.ObjectUtils; -import org.apache.commons.lang3.StringEscapeUtils; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.annotation.Nullable; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Objects; -import java.util.Set; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public class DefaultCodegen { protected static final Logger LOGGER = LoggerFactory.getLogger(DefaultCodegen.class); @@ -344,6 +345,12 @@ public class DefaultCodegen { return objs; } + // override with any special post-processing + @SuppressWarnings("static-method") + public Map postProcessOperationsWithModels(Map objs, List allModels) { + return objs; + } + // override with any special post-processing @SuppressWarnings("static-method") public Map postProcessSupportingFileData(Map objs) { diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java index 61a4e2a2ba06..5a73e826ff5e 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java @@ -1,25 +1,54 @@ package io.swagger.codegen; -import com.samskivert.mustache.Mustache; -import com.samskivert.mustache.Template; -import io.swagger.codegen.ignore.CodegenIgnoreProcessor; -import io.swagger.codegen.utils.ImplementationVersion; -import io.swagger.codegen.languages.AbstractJavaCodegen; -import io.swagger.models.*; -import io.swagger.models.auth.OAuth2Definition; -import io.swagger.models.auth.SecuritySchemeDefinition; -import io.swagger.models.parameters.Parameter; -import io.swagger.util.Json; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; + import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.*; -import java.util.*; +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Template; -import org.apache.commons.lang3.StringUtils; +import io.swagger.codegen.ignore.CodegenIgnoreProcessor; +import io.swagger.codegen.languages.AbstractJavaCodegen; +import io.swagger.codegen.utils.ImplementationVersion; +import io.swagger.models.ComposedModel; +import io.swagger.models.Contact; +import io.swagger.models.Info; +import io.swagger.models.License; +import io.swagger.models.Model; +import io.swagger.models.Operation; +import io.swagger.models.Path; +import io.swagger.models.RefModel; +import io.swagger.models.SecurityRequirement; +import io.swagger.models.Swagger; +import io.swagger.models.Tag; +import io.swagger.models.auth.OAuth2Definition; +import io.swagger.models.auth.SecuritySchemeDefinition; +import io.swagger.models.parameters.Parameter; +import io.swagger.util.Json; public class DefaultGenerator extends AbstractGenerator implements Generator { protected final Logger LOGGER = LoggerFactory.getLogger(DefaultGenerator.class); @@ -382,7 +411,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { } - private void generateApis(List files, List allOperations) { + private void generateApis(List files, List allOperations, List allModels) { if (!generateApis) { return; } @@ -410,7 +439,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { return ObjectUtils.compare(one.operationId, another.operationId); } }); - Map operation = processOperations(config, tag, ops); + Map operation = processOperations(config, tag, ops, allModels); operation.put("basePath", basePath); operation.put("basePathWithoutHost", basePathWithoutHost); @@ -698,7 +727,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { generateModels(files, allModels); // apis List allOperations = new ArrayList(); - generateApis(files, allOperations); + generateApis(files, allOperations, allModels); // supporting files Map bundle = buildSupportFileBundle(allOperations, allModels); @@ -895,7 +924,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { } - private Map processOperations(CodegenConfig config, String tag, List ops) { + private Map processOperations(CodegenConfig config, String tag, List ops, List allModels) { Map operations = new HashMap(); Map objs = new HashMap(); objs.put("classname", config.toApiName(tag)); @@ -943,6 +972,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { operations.put("hasImport", true); } config.postProcessOperations(operations); + config.postProcessOperationsWithModels(operations, allModels); if (objs.size() > 0) { List os = (List) objs.get("operation");