Skip to content

Commit c488f4b

Browse files
committed
use ignore import mapping as an option, default true for java generators
1 parent 60ed4a3 commit c488f4b

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ public abstract class DefaultCodegenConfig implements CodegenConfig {
171171
protected String ignoreFilePathOverride;
172172
protected boolean useOas2 = false;
173173
protected boolean copyFistAllOfProperties = false;
174+
protected boolean ignoreImportMapping;
174175

175176
public List<CliOption> cliOptions() {
176177
return cliOptions;
@@ -181,6 +182,12 @@ public void processOpts() {
181182
this.setTemplateDir((String) additionalProperties.get(CodegenConstants.TEMPLATE_DIR));
182183
}
183184

185+
if (additionalProperties.get(CodegenConstants.IGNORE_IMPORT_MAPPING_OPTION) != null) {
186+
setIgnoreImportMapping(Boolean.parseBoolean( additionalProperties.get(CodegenConstants.IGNORE_IMPORT_MAPPING_OPTION).toString()));
187+
} else {
188+
setIgnoreImportMapping(defaultIgnoreImportMappingOption());
189+
}
190+
184191
if (additionalProperties.containsKey(CodegenConstants.TEMPLATE_VERSION)) {
185192
this.setTemplateVersion((String) additionalProperties.get(CodegenConstants.TEMPLATE_VERSION));
186193
}
@@ -4264,7 +4271,15 @@ public void setUnflattenedOpenAPI(OpenAPI unflattenedOpenAPI) {
42644271
this.unflattenedOpenAPI = unflattenedOpenAPI;
42654272
}
42664273

4267-
public boolean ignoreImportMapping() {
4274+
public boolean getIgnoreImportMapping() {
4275+
return ignoreImportMapping;
4276+
}
4277+
4278+
public void setIgnoreImportMapping(boolean ignoreImportMapping) {
4279+
this.ignoreImportMapping = ignoreImportMapping;
4280+
}
4281+
4282+
public boolean defaultIgnoreImportMappingOption() {
42684283
return false;
42694284
}
42704285
}

src/main/java/io/swagger/codegen/v3/generators/java/AbstractJavaCodegen.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,13 @@ public String toParamName(String name) {
598598

599599
@Override
600600
public String toModelName(final String name) {
601+
// We need to check if import-mapping has a different model for this class, so we use it
602+
// instead of the auto-generated one.
603+
System.out.println("getIgnoreImportMapping() => " + getIgnoreImportMapping());
604+
605+
if (!getIgnoreImportMapping() && importMapping.containsKey(name)) {
606+
return importMapping.get(name);
607+
}
601608
final String sanitizedName = sanitizeName(name);
602609

603610
String nameWithPrefixSuffix = sanitizedName;
@@ -1445,7 +1452,7 @@ public void setLanguageArguments(List<CodegenArgument> languageArguments) {
14451452
}
14461453

14471454
@Override
1448-
public boolean ignoreImportMapping() {
1455+
public boolean defaultIgnoreImportMappingOption() {
14491456
return true;
14501457
}
14511458
}

src/test/java/io/swagger/codegen/v3/generators/java/JavaClientCodegenTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ public void customTemplates() throws Exception {
272272
public void testModelNamedFile() {
273273
final OpenAPI openAPI = getOpenAPI("3_0_0/model_named_file.yaml");
274274
final CodegenConfig config = new JavaClientCodegen();
275+
config.setIgnoreImportMapping(true);
275276
config.preprocessOpenAPI(openAPI);
276277

277278
final Schema modelFile = openAPI.getComponents().getSchemas().get("File");
@@ -285,7 +286,7 @@ public void testModelNamedFile() {
285286

286287
final List<CodegenProperty> codegenProperties = codegenModelSetting.getVars();
287288

288-
Assert.assertEquals(codegenProperties.size(), 2);
289+
Assert.assertEquals(codegenProperties.size(), 4);
289290

290291
CodegenProperty fileProperty = codegenProperties.stream().filter(property -> property.name.equals("file")).findAny().get();
291292

0 commit comments

Comments
 (0)