@@ -185,35 +185,40 @@ else if (AnnotationsUtils.hasArrayAnnotation(parameterDoc.content()[0].array()))
185
185
}
186
186
}
187
187
188
- Schema calculateSchema (Components components , java . lang . reflect . Parameter parameter , String paramName ,
188
+ Schema calculateSchema (Components components , ParameterInfo parameterInfo ,
189
189
RequestBodyInfo requestBodyInfo , JsonView jsonView ) {
190
190
Schema schemaN ;
191
191
Class <?> schemaImplementation = null ;
192
192
Type returnType = null ;
193
193
JavaType ct = null ;
194
-
194
+ String paramName = parameterInfo .getpName ();
195
+ java .lang .reflect .Parameter parameter = parameterInfo .getParameter ();
195
196
if (parameter != null ) {
196
197
returnType = parameter .getParameterizedType ();
197
198
ct = constructType (parameter .getType ());
198
199
schemaImplementation = parameter .getType ();
199
200
}
200
201
201
- if (isFile (ct )) {
202
- schemaN = getFileSchema (requestBodyInfo );
203
- schemaN .addProperties (paramName , new FileSchema ());
204
- return schemaN ;
205
- }
206
-
207
- if (returnType instanceof ParameterizedType ) {
208
- ParameterizedType parameterizedType = (ParameterizedType ) returnType ;
209
- if (isFile (parameterizedType )) {
210
- return extractFileSchema (paramName , requestBodyInfo );
202
+ if (parameterInfo .getParameterModel () == null || parameterInfo .getParameterModel ().getSchema () == null ) {
203
+ if (isFile (ct )) {
204
+ schemaN = getFileSchema (requestBodyInfo );
205
+ schemaN .addProperties (paramName , new FileSchema ());
206
+ return schemaN ;
207
+ } else if (returnType instanceof ParameterizedType ) {
208
+ ParameterizedType parameterizedType = (ParameterizedType ) returnType ;
209
+ if (isFile (parameterizedType )) {
210
+ return extractFileSchema (paramName , requestBodyInfo );
211
+ }
212
+ schemaN = calculateSchemaFromParameterizedType (components , returnType , jsonView );
213
+ }
214
+ else {
215
+ schemaN = SpringDocAnnotationsUtils .resolveSchemaFromType (schemaImplementation , components , jsonView );
211
216
}
212
- schemaN = calculateSchemaFromParameterizedType (components , returnType , jsonView );
213
217
}
214
218
else {
215
- schemaN = SpringDocAnnotationsUtils . resolveSchemaFromType ( schemaImplementation , components , jsonView );
219
+ schemaN = parameterInfo . getParameterModel (). getSchema ( );
216
220
}
221
+
217
222
if (requestBodyInfo != null ) {
218
223
if (requestBodyInfo .getMergedSchema () != null ) {
219
224
requestBodyInfo .getMergedSchema ().addProperties (paramName , schemaN );
@@ -234,8 +239,8 @@ public LocalVariableTableParameterNameDiscoverer getLocalSpringDocParameterNameD
234
239
235
240
private Schema extractFileSchema (String paramName , RequestBodyInfo requestBodyInfo ) {
236
241
Schema schemaN = getFileSchema (requestBodyInfo );
237
- ArraySchema schemafile = new ArraySchema ();
238
- schemafile .items (new FileSchema ());
242
+ ArraySchema schemaFile = new ArraySchema ();
243
+ schemaFile .items (new FileSchema ());
239
244
schemaN .addProperties (paramName , new ArraySchema ().items (new FileSchema ()));
240
245
return schemaN ;
241
246
}
0 commit comments