forked from loafle/openapi-generator-original
made imports more intelligent
This commit is contained in:
parent
1cd54ee685
commit
d75e602168
@ -15,7 +15,7 @@ public class CodegenModel {
|
|||||||
// list of all required parameters
|
// list of all required parameters
|
||||||
public Set<String> mandatory = new HashSet<String>();
|
public Set<String> mandatory = new HashSet<String>();
|
||||||
|
|
||||||
public Set<String> imports = new HashSet<String>();
|
public Set<String> imports = new TreeSet<String>();
|
||||||
public Boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum;
|
public Boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum;
|
||||||
public ExternalDocs externalDocs;
|
public ExternalDocs externalDocs;
|
||||||
|
|
||||||
|
@ -697,6 +697,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
|||||||
mo.put("model", cm);
|
mo.put("model", cm);
|
||||||
mo.put("importPath", config.toModelImport(key));
|
mo.put("importPath", config.toModelImport(key));
|
||||||
models.add(mo);
|
models.add(mo);
|
||||||
|
|
||||||
allImports.addAll(cm.imports);
|
allImports.addAll(cm.imports);
|
||||||
}
|
}
|
||||||
objs.put("models", models);
|
objs.put("models", models);
|
||||||
|
@ -147,7 +147,6 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
this.setSourceFolder((String) additionalProperties.get(CodegenConstants.SOURCE_FOLDER));
|
this.setSourceFolder((String) additionalProperties.get(CodegenConstants.SOURCE_FOLDER));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (additionalProperties.containsKey(CodegenConstants.LOCAL_VARIABLE_PREFIX)) {
|
if (additionalProperties.containsKey(CodegenConstants.LOCAL_VARIABLE_PREFIX)) {
|
||||||
this.setLocalVariablePrefix((String) additionalProperties.get(CodegenConstants.LOCAL_VARIABLE_PREFIX));
|
this.setLocalVariablePrefix((String) additionalProperties.get(CodegenConstants.LOCAL_VARIABLE_PREFIX));
|
||||||
}
|
}
|
||||||
@ -200,6 +199,14 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
importMapping.put("ToStringSerializer", "com.fasterxml.jackson.databind.ser.std.ToStringSerializer");
|
importMapping.put("ToStringSerializer", "com.fasterxml.jackson.databind.ser.std.ToStringSerializer");
|
||||||
importMapping.put("JsonSerialize", "com.fasterxml.jackson.databind.annotation.JsonSerialize");
|
importMapping.put("JsonSerialize", "com.fasterxml.jackson.databind.annotation.JsonSerialize");
|
||||||
|
|
||||||
|
// imports for pojos
|
||||||
|
importMapping.put("ApiModelProperty", "io.swagger.annotations.ApiModelProperty");
|
||||||
|
importMapping.put("ApiModel", "io.swagger.annotations.ApiModel");
|
||||||
|
importMapping.put("JsonProperty", "com.fasterxml.jackson.annotation.JsonProperty");
|
||||||
|
importMapping.put("JsonValue", "com.fasterxml.jackson.annotation.JsonValue");
|
||||||
|
importMapping.put("Objects", "java.util.Objects");
|
||||||
|
importMapping.put("StringUtil", invokerPackage + ".StringUtil");
|
||||||
|
|
||||||
final String invokerFolder = (sourceFolder + '/' + invokerPackage).replace(".", "/");
|
final String invokerFolder = (sourceFolder + '/' + invokerPackage).replace(".", "/");
|
||||||
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
|
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
|
||||||
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
|
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
|
||||||
@ -471,6 +478,18 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
model.imports.add("JsonSerialize");
|
model.imports.add("JsonSerialize");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(model.isEnum == null || model.isEnum) {
|
||||||
|
// needed by all pojos, but not enums
|
||||||
|
model.imports.add("ApiModelProperty");
|
||||||
|
model.imports.add("ApiModel");
|
||||||
|
model.imports.add("JsonProperty");
|
||||||
|
model.imports.add("Objects");
|
||||||
|
model.imports.add("StringUtil");
|
||||||
|
|
||||||
|
if(model.hasEnums != null || model.hasEnums == true) {
|
||||||
|
model.imports.add("JsonValue");
|
||||||
|
}
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,10 +6,7 @@ import {{invokerPackage}}.StringUtil;
|
|||||||
|
|
||||||
{{#serializableModel}}
|
{{#serializableModel}}
|
||||||
import java.io.Serializable;{{/serializableModel}}
|
import java.io.Serializable;{{/serializableModel}}
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import io.swagger.annotations.*;
|
|
||||||
import com.fasterxml.jackson.annotation.*;
|
|
||||||
{{#models}}
|
{{#models}}
|
||||||
|
|
||||||
{{#model}}{{#description}}
|
{{#model}}{{#description}}
|
||||||
|
@ -10,13 +10,11 @@ import io.swagger.models.ModelImpl;
|
|||||||
import io.swagger.models.RefModel;
|
import io.swagger.models.RefModel;
|
||||||
import io.swagger.models.properties.Property;
|
import io.swagger.models.properties.Property;
|
||||||
import io.swagger.models.properties.StringProperty;
|
import io.swagger.models.properties.StringProperty;
|
||||||
|
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -83,7 +81,7 @@ public class JavaModelEnumTest {
|
|||||||
Assert.assertEquals(cm.name, "sample");
|
Assert.assertEquals(cm.name, "sample");
|
||||||
Assert.assertEquals(cm.classname, "Sample");
|
Assert.assertEquals(cm.classname, "Sample");
|
||||||
Assert.assertEquals(cm.parent, "ParentModel");
|
Assert.assertEquals(cm.parent, "ParentModel");
|
||||||
Assert.assertEquals(cm.imports, Collections.singletonList("ParentModel"));
|
Assert.assertTrue(cm.imports.contains("ParentModel"));
|
||||||
|
|
||||||
// Assert that only the unshared/uninherited enum remains
|
// Assert that only the unshared/uninherited enum remains
|
||||||
Assert.assertEquals(cm.vars.size(), 1);
|
Assert.assertEquals(cm.vars.size(), 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user