Skip to content

Commit dbd0a4b

Browse files
authored
Merge pull request #8478 from john-french/addExtensionSupport
Add support for x-codegen-ignore and x-import-mapping extensions
2 parents 9ede7b0 + 541198a commit dbd0a4b

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

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

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,9 +367,11 @@ private Model getParent(Model model) {
367367
Map<String, Model> modelMap = new HashMap<String, Model>();
368368
modelMap.put(name, model);
369369
Map<String, Object> models = processModels(config, modelMap, definitions);
370-
models.put("classname", config.toModelName(name));
371-
models.putAll(config.additionalProperties());
372-
allProcessedModels.put(name, models);
370+
if (models != null) {
371+
models.put("classname", config.toModelName(name));
372+
models.putAll(config.additionalProperties());
373+
allProcessedModels.put(name, models);
374+
}
373375
} catch (Exception e) {
374376
String message = "Could not process model '" + name + "'" + ". Please make sure that your schema is correct!";
375377
LOGGER.error(message, e);
@@ -1016,6 +1018,16 @@ private Map<String, Object> processModels(CodegenConfig config, Map<String, Mode
10161018
Set<String> allImports = new LinkedHashSet<String>();
10171019
for (String key : definitions.keySet()) {
10181020
Model mm = definitions.get(key);
1021+
if(mm.getVendorExtensions() != null && mm.getVendorExtensions().containsKey("x-codegen-ignore")) {
1022+
// skip this model
1023+
LOGGER.debug("skipping model " + key);
1024+
return null;
1025+
}
1026+
else if(mm.getVendorExtensions() != null && mm.getVendorExtensions().containsKey("x-codegen-import-mapping")) {
1027+
String codegenImport = mm.getVendorExtensions().get("x-codegen-import-mapping").toString();
1028+
config.importMapping().put(key, codegenImport);
1029+
allImports.add(codegenImport);
1030+
}
10191031
CodegenModel cm = config.fromModel(key, mm, allDefinitions);
10201032
Map<String, Object> mo = new HashMap<String, Object>();
10211033
mo.put("model", cm);

0 commit comments

Comments
 (0)