Skip to content

Commit 31c3bab

Browse files
authored
Merge pull request #9959 from swagger-api/issue-9957
allow skip model alias for generators.
2 parents cb06ffa + 85d9128 commit 31c3bab

File tree

6 files changed

+33
-1
lines changed

6 files changed

+33
-1
lines changed

modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Generate.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ public class Generate implements Runnable {
172172
description = CodegenConstants.REMOVE_OPERATION_ID_PREFIX_DESC)
173173
private Boolean removeOperationIdPrefix;
174174

175+
@Option(name = {"--skip-alias-generation"}, title = "skip alias generation.", description = "skip code generation for models identified as alias.")
176+
private Boolean skipAliasGeneration;
177+
175178
@Override
176179
public void run() {
177180

@@ -273,6 +276,10 @@ public void run() {
273276
configurator.setRemoveOperationIdPrefix(removeOperationIdPrefix);
274277
}
275278

279+
if (skipAliasGeneration != null) {
280+
configurator.setSkipAliasGeneration(removeOperationIdPrefix);
281+
}
282+
276283
applySystemPropertiesKvpList(systemProperties, configurator);
277284
applyInstantiationTypesKvpList(instantiationTypes, configurator);
278285
applyImportMappingsKvpList(importMappings, configurator);

modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,4 +222,8 @@ public interface CodegenConfig {
222222

223223
String sanitizeName(String name);
224224

225+
void setSkipAliasGeneration(Boolean skipAliasGeneration);
226+
227+
Boolean getSkipAliasGeneration();
228+
225229
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ public class DefaultCodegen {
103103
protected String gitUserId, gitRepoId, releaseNote;
104104
protected String httpUserAgent;
105105
protected Boolean hideGenerationTimestamp = true;
106+
protected Boolean skipAliasGeneration;
106107
// How to encode special characters like $
107108
// They are translated to words like "Dollar" and prefixed with '
108109
// Then translated back during JSON encoding and decoding
@@ -3449,6 +3450,14 @@ public void setSkipOverwrite(boolean skipOverwrite) {
34493450
this.skipOverwrite = skipOverwrite;
34503451
}
34513452

3453+
public void setSkipAliasGeneration(Boolean skipAliasGeneration) {
3454+
this.skipAliasGeneration = skipAliasGeneration;
3455+
}
3456+
3457+
public Boolean getSkipAliasGeneration() {
3458+
return this.skipAliasGeneration;
3459+
}
3460+
34523461
public boolean isRemoveOperationIdPrefix() {
34533462
return removeOperationIdPrefix;
34543463
}

modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,8 @@ private Model getParent(Model model) {
401401
// post process all processed models
402402
allProcessedModels = config.postProcessAllModels(allProcessedModels);
403403

404+
final boolean skipAlias = config.getSkipAliasGeneration() != null && config.getSkipAliasGeneration();
405+
404406
// generate files based on processed models
405407
for (String modelName : allProcessedModels.keySet()) {
406408
Map<String, Object> models = (Map<String, Object>) allProcessedModels.get(modelName);
@@ -411,7 +413,7 @@ private Model getParent(Model model) {
411413
continue;
412414
}
413415
Map<String, Object> modelTemplate = (Map<String, Object>) ((List<Object>) models.get("models")).get(0);
414-
if (config instanceof AbstractJavaCodegen) {
416+
if (skipAlias) {
415417
// Special handling of aliases only applies to Java
416418
if (modelTemplate != null && modelTemplate.containsKey("model")) {
417419
CodegenModel m = (CodegenModel) modelTemplate.get("model");

modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class CodegenConfigurator implements Serializable {
4444
private String outputDir;
4545
private boolean verbose;
4646
private boolean skipOverwrite;
47+
private Boolean skipAliasGeneration;
4748
private boolean removeOperationIdPrefix;
4849
private String templateDir;
4950
private String auth;
@@ -126,6 +127,10 @@ public CodegenConfigurator setRemoveOperationIdPrefix(boolean removeOperationIdP
126127
return this;
127128
}
128129

130+
public void setSkipAliasGeneration(Boolean skipAliasGeneration) {
131+
this.skipAliasGeneration = skipAliasGeneration;
132+
}
133+
129134
public String getModelNameSuffix() {
130135
return modelNameSuffix;
131136
}
@@ -392,6 +397,7 @@ public ClientOptInput toClientOptInput() {
392397
config.setInputSpec(inputSpec);
393398
config.setOutputDir(outputDir);
394399
config.setSkipOverwrite(skipOverwrite);
400+
config.setSkipAliasGeneration(skipAliasGeneration);
395401
config.setIgnoreFilePathOverride(ignoreFileOverride);
396402
config.setRemoveOperationIdPrefix(removeOperationIdPrefix);
397403

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,10 @@ public void processOpts() {
459459
} else if (dateLibrary.equals("legacy")) {
460460
additionalProperties.put("legacyDates", true);
461461
}
462+
463+
if (this.skipAliasGeneration == null) {
464+
this.skipAliasGeneration = Boolean.TRUE;
465+
}
462466
}
463467

464468
private void sanitizeConfig() {

0 commit comments

Comments
 (0)