17
17
18
18
public class SchemaHandler implements ISchemaHandler {
19
19
20
+ public static final String ALL_OF_PREFFIX = "AllOf" ;
20
21
public static final String ONE_OF_PREFFIX = "OneOf" ;
21
22
public static final String ANY_OF_PREFFIX = "AnyOf" ;
22
23
public static final String ARRAY_ITEMS_SUFFIX = "Items" ;
@@ -99,7 +100,13 @@ protected CodegenModel processComposedSchema(String name, ComposedSchema compose
99
100
}
100
101
101
102
protected CodegenModel processComposedSchema (String codegenModelName , CodegenProperty codegenProperty , ComposedSchema composedSchema , Map <String , CodegenModel > allModels ) {
102
- List <Schema > schemas = composedSchema .getOneOf ();
103
+ List <Schema > schemas = composedSchema .getAllOf ();
104
+ if (schemas != null && !schemas .isEmpty ()) {
105
+ final CodegenModel composedModel = codegenConfig .fromModel (ALL_OF_PREFFIX + codegenModelName , composedSchema );
106
+ this .updatePropertyDataType (codegenProperty , composedModel );
107
+ return composedModel ;
108
+ }
109
+ schemas = composedSchema .getOneOf ();
103
110
CodegenModel composedModel = this .createComposedModel (ONE_OF_PREFFIX + codegenModelName , schemas );
104
111
if (composedModel == null ) {
105
112
schemas = composedSchema .getAnyOf ();
@@ -109,10 +116,7 @@ protected CodegenModel processComposedSchema(String codegenModelName, CodegenPro
109
116
}
110
117
}
111
118
this .addInterfaces (schemas , composedModel , allModels );
112
- codegenProperty .datatype = composedModel .getClassname ();
113
- codegenProperty .datatypeWithEnum = composedModel .getClassname ();
114
- codegenProperty .baseType = composedModel .getClassname ();
115
- codegenProperty .complexType = composedModel .getClassname ();
119
+ this .updatePropertyDataType (codegenProperty , composedModel );
116
120
return composedModel ;
117
121
}
118
122
@@ -221,4 +225,11 @@ protected void updateArrayModel(CodegenModel codegenModel, String schemaName, Ar
221
225
222
226
arraySchema .setItems (items );
223
227
}
228
+
229
+ private void updatePropertyDataType (CodegenProperty codegenProperty , CodegenModel composedModel ) {
230
+ codegenProperty .datatype = composedModel .getClassname ();
231
+ codegenProperty .datatypeWithEnum = composedModel .getClassname ();
232
+ codegenProperty .baseType = composedModel .getClassname ();
233
+ codegenProperty .complexType = composedModel .getClassname ();
234
+ }
224
235
}
0 commit comments