@@ -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