@@ -382,28 +382,25 @@ public int compare(String o1, String o2) {
382
382
if (modelList == null || modelList .isEmpty ()) {
383
383
continue ;
384
384
}
385
-
386
- for (Object object : modelList ) {
387
- Map <String , Object > modelMap = (Map <String , Object >) object ;
388
- CodegenModel codegenModel = null ;
389
- if (modelMap .containsKey ("oneOf-model" )) {
390
- codegenModel = (CodegenModel ) modelMap .get ("oneOf-model" );
391
- }
392
- if (modelMap .containsKey ("anyOf-model" )) {
393
- codegenModel = (CodegenModel ) modelMap .get ("anyOf-model" );
394
- }
395
- if (codegenModel != null ) {
396
- models = processModel (codegenModel , config , schemas );
397
- models .put ("classname" , config .toModelName (codegenModel .name ));
398
- models .putAll (config .additionalProperties ());
399
- allProcessedModels .put (codegenModel .name , models );
400
- break ;
401
- }
402
- }
403
385
} catch (Exception e ) {
404
386
throw new RuntimeException ("Could not process model '" + name + "'" + ".Please make sure that your schema is correct!" , e );
405
387
}
406
388
}
389
+ final List <CodegenModel > composedModels = null ;
390
+ /** todo: uncomment once generator repo is updated
391
+ final ISchemaHandler schemaHandler = config.getSchemaHandler();
392
+ schemaHandler.readProcessedModels(allProcessedModels);
393
+
394
+ final List<CodegenModel> composedModels = schemaHandler.getModels();
395
+ */
396
+ if (composedModels != null && !composedModels .isEmpty ()) {
397
+ for (CodegenModel composedModel : composedModels ) {
398
+ final Map <String , Object > models = processModel (composedModel , config , schemas );
399
+ models .put ("classname" , config .toModelName (composedModel .name ));
400
+ models .putAll (config .additionalProperties ());
401
+ allProcessedModels .put (composedModel .name , models );
402
+ }
403
+ }
407
404
408
405
// post process all processed models
409
406
allProcessedModels = config .postProcessAllModels (allProcessedModels );
@@ -1015,7 +1012,9 @@ private Map<String, Object> processModels(CodegenConfig config, Map<String, Sche
1015
1012
CodegenModel cm = config .fromModel (key , schema , allDefinitions );
1016
1013
Map <String , Object > mo = new HashMap <>();
1017
1014
mo .put ("model" , cm );
1015
+ mo .put ("schema" , schema );
1018
1016
mo .put ("importPath" , config .toModelImport (cm .classname ));
1017
+ /**
1019
1018
if (cm.vendorExtensions.containsKey("oneOf-model")) {
1020
1019
CodegenModel oneOfModel = (CodegenModel) cm.vendorExtensions.get("oneOf-model");
1021
1020
mo.put("oneOf-model", oneOfModel);
@@ -1024,6 +1023,7 @@ private Map<String, Object> processModels(CodegenConfig config, Map<String, Sche
1024
1023
CodegenModel anyOfModel = (CodegenModel) cm.vendorExtensions.get("anyOf-model");
1025
1024
mo.put("anyOf-model", anyOfModel);
1026
1025
}
1026
+ */
1027
1027
models .add (mo );
1028
1028
1029
1029
allImports .addAll (cm .imports );
@@ -1060,9 +1060,7 @@ private Map<String, Object> processModel(CodegenModel codegenModel, CodegenConfi
1060
1060
objs .put ("package" , config .modelPackage ());
1061
1061
List <Object > models = new ArrayList <>();
1062
1062
1063
- if (codegenModel .vendorExtensions .containsKey ("x-is-composed-model" )) {
1064
- objs .put ("x-is-composed-model" , codegenModel .vendorExtensions .get ("x-is-composed-model" ));
1065
- }
1063
+ objs .put ("x-is-composed-model" , codegenModel .isComposedModel );
1066
1064
1067
1065
Map <String , Object > modelObject = new HashMap <>();
1068
1066
modelObject .put ("model" , codegenModel );
0 commit comments