4040import io .swagger .v3 .core .util .Json ;
4141import io .swagger .v3 .core .util .RefUtils ;
4242import io .swagger .v3 .oas .annotations .*;
43- import io .swagger .v3 .oas .annotations .enums .Explode ;
44- import io .swagger .v3 .oas .annotations .enums .ParameterIn ;
4543import io .swagger .v3 .oas .annotations .extensions .Extension ;
4644import io .swagger .v3 .oas .annotations .extensions .Extensions ;
4745import io .swagger .v3 .oas .annotations .media .ArraySchema ;
@@ -231,14 +229,14 @@ public static void parse(ParserContext ctx, OpenAPIExt openapi, OperationExt ope
231229
232230 operation .setHidden (isHidden (annotations ));
233231 operation .setDeprecated (isDeprecated (annotations ));
234- /**
232+ /*
235233 * @Operation:
236234 */
237235 findAnnotationByType (method .visibleAnnotations , Operation .class ).stream ()
238236 .findFirst ()
239237 .ifPresent (a -> operation (ctx , operation , toMap (a )));
240238
241- /**
239+ /*
242240 * @Parameters:
243241 */
244242 findAnnotationByType (method .visibleAnnotations , Parameters .class ).stream ()
@@ -248,14 +246,18 @@ public static void parse(ParserContext ctx, OpenAPIExt openapi, OperationExt ope
248246 .findFirst ()
249247 .ifPresent (a -> parameters (ctx , operation , singletonList (toMap (a ))));
250248 if (method .visibleParameterAnnotations != null ) {
251- for (List <AnnotationNode > paramAnnotations : method .visibleParameterAnnotations ) {
252- /**
249+ for (int paramIndex = 0 ;
250+ paramIndex < method .visibleParameterAnnotations .length ;
251+ paramIndex ++) {
252+ var paramAnnotations = method .visibleParameterAnnotations [paramIndex ];
253+ var pindex = paramIndex ;
254+ /*
253255 * @Parameter:
254256 */
255257 findAnnotationByType (paramAnnotations , Parameter .class ).stream ()
256258 .findFirst ()
257- .ifPresent (a -> parameters (ctx , operation , singletonList ( toMap (a ) )));
258- /**
259+ .ifPresent (a -> parameter (ctx , operation , pindex , toMap (a )));
260+ /*
259261 * @RequestBody:
260262 */
261263 findAnnotationByType (paramAnnotations , RequestBody .class ).stream ()
@@ -267,14 +269,14 @@ public static void parse(ParserContext ctx, OpenAPIExt openapi, OperationExt ope
267269 .findFirst ()
268270 .ifPresent (a -> requestBody (ctx , operation , toMap (a )));
269271
270- /**
272+ /*
271273 * @ApiResponse:
272274 */
273275 findAnnotationByType (method .visibleAnnotations , ApiResponse .class ).stream ()
274276 .findFirst ()
275277 .ifPresent (a -> operationResponse (ctx , operation , toMap (a )));
276278
277- /** SecurityRequirements: */
279+ /* SecurityRequirements: */
278280 findAnnotationByType (method .visibleAnnotations , SecurityRequirements .class ).stream ()
279281 .map (it -> annotationList (toMap (it ), "value" ))
280282 .forEach (a -> securityRequirements (a , operation ::addSecurityItem ));
@@ -283,14 +285,14 @@ public static void parse(ParserContext ctx, OpenAPIExt openapi, OperationExt ope
283285 .findFirst ()
284286 .ifPresent (a -> securityRequirements (singletonList (toMap (a )), operation ::addSecurityItem ));
285287
286- /**
288+ /*
287289 * @ApiResponses:
288290 */
289291 findAnnotationByType (method .visibleAnnotations , ApiResponses .class ).stream ()
290292 .flatMap (it -> annotationList (toMap (it ), "value" ).stream ())
291293 .forEach (a -> operationResponse (ctx , operation , a ));
292294
293- /**
295+ /*
294296 * @ApiResponse:
295297 */
296298 findAnnotationByType (method .visibleAnnotations , ApiResponse .class ).stream ()
@@ -479,7 +481,7 @@ private static void securityRequirements(
479481
480482 private static void requestBody (
481483 ParserContext ctx , OperationExt operation , Map <String , Object > annotation ) {
482- if (annotation .size () > 0 ) {
484+ if (! annotation .isEmpty () ) {
483485 RequestBodyExt requestBody = operation .getRequestBody ();
484486 if (requestBody == null ) {
485487 requestBody = new RequestBodyExt ();
@@ -492,60 +494,51 @@ private static void requestBody(
492494 }
493495 }
494496
495- @ io .swagger .v3 .oas .annotations .Operation (
496- parameters =
497- @ Parameter (
498- name = "p" ,
499- description = "des" ,
500- in = ParameterIn .COOKIE ,
501- required = false ,
502- deprecated = true ,
503- allowEmptyValue = true ,
504- allowReserved = false ,
505- hidden = false ,
506- explode = Explode .TRUE ,
507- ref = "Pet" ))
508497 private static void parameters (
509498 ParserContext ctx , OperationExt operation , List <Map <String , Object >> parameters ) {
510499 for (int i = 0 ; i < parameters .size (); i ++) {
511500 Map <String , Object > parameterMap = parameters .get (i );
512- String name = (String ) parameterMap .get ("name" );
513- io .swagger .v3 .oas .models .parameters .Parameter parameter ;
514- if (name != null ) {
515- int index = i ;
516- parameter =
517- operation .getParameters ().stream ()
518- .filter (it -> it .getName ().equals (name ))
519- .findFirst ()
520- .orElseGet (() -> operation .getParameter (index ));
521- } else {
522- parameter = operation .getParameter (i );
523- }
524- if (parameter == null ) {
525- throw new IllegalArgumentException (
526- "Parameter not found: "
527- + name
528- + " at position: "
529- + i
530- + " for annotation: "
531- + parameterMap );
532- }
533- Optional .ofNullable (name ).ifPresent (parameter ::setName );
534- stringValue (parameterMap , "description" , parameter ::setDescription );
535- enumValue (parameterMap , "in" , in -> parameter .setIn (in .toLowerCase ()));
536- boolValue (parameterMap , "required" , parameter ::setRequired );
537- boolValue (parameterMap , "deprecated" , parameter ::setDeprecated );
538- boolValue (parameterMap , "allowEmptyValue" , parameter ::setAllowEmptyValue );
539- boolValue (parameterMap , "allowReserved" , parameter ::setAllowReserved );
540- // NOTE: Hidden is not present on parameter
541- // boolValue(parameterMap, "hidden", parameter::setHidden);
542- enumValue (parameterMap , "explode" , value -> parameter .setExample (Boolean .valueOf (value )));
543- stringValue (parameterMap , "ref" , ref -> parameter .set$ref (RefUtils .constructRef (ref )));
544- arrayOrSchema (ctx , parameterMap ).ifPresent (parameter ::setSchema );
545- examples (parameterMap , parameter ::setExample , parameter ::setExamples );
546- annotationList (
547- parameterMap , "extensions" , values -> extensions (values , parameter ::addExtension ));
501+ parameter (ctx , operation , i , parameterMap );
502+ }
503+ }
504+
505+ private static void parameter (
506+ ParserContext ctx , OperationExt operation , int index , Map <String , Object > parameterMap ) {
507+ String name = (String ) parameterMap .get ("name" );
508+ io .swagger .v3 .oas .models .parameters .Parameter parameter ;
509+ if (name != null ) {
510+ parameter =
511+ operation .getParameters ().stream ()
512+ .filter (it -> it .getName ().equals (name ))
513+ .findFirst ()
514+ .orElseGet (() -> operation .getParameter (index ));
515+ } else {
516+ parameter = operation .getParameter (index );
548517 }
518+ if (parameter == null ) {
519+ throw new IllegalArgumentException (
520+ "Parameter not found: "
521+ + name
522+ + " at position: "
523+ + index
524+ + " for annotation: "
525+ + parameterMap );
526+ }
527+ Optional .ofNullable (name ).ifPresent (parameter ::setName );
528+ stringValue (parameterMap , "description" , parameter ::setDescription );
529+ enumValue (parameterMap , "in" , in -> parameter .setIn (in .toLowerCase ()));
530+ boolValue (parameterMap , "required" , parameter ::setRequired );
531+ boolValue (parameterMap , "deprecated" , parameter ::setDeprecated );
532+ boolValue (parameterMap , "allowEmptyValue" , parameter ::setAllowEmptyValue );
533+ boolValue (parameterMap , "allowReserved" , parameter ::setAllowReserved );
534+ // NOTE: Hidden is not present on parameter
535+ // boolValue(parameterMap, "hidden", parameter::setHidden);
536+ enumValue (parameterMap , "explode" , value -> parameter .setExample (Boolean .valueOf (value )));
537+ stringValue (parameterMap , "ref" , ref -> parameter .set$ref (RefUtils .constructRef (ref )));
538+ arrayOrSchema (ctx , parameterMap ).ifPresent (parameter ::setSchema );
539+ examples (parameterMap , parameter ::setExample , parameter ::setExamples );
540+ annotationList (
541+ parameterMap , "extensions" , values -> extensions (values , parameter ::addExtension ));
549542 }
550543
551544 private static void examples (
0 commit comments