@@ -5,11 +5,10 @@ import io.swagger.v3.core.converter.{AnnotatedType, ModelConverter, ModelConvert
55import io .swagger .v3 .core .jackson .ModelResolver
66import io .swagger .v3 .core .util .{Json , PrimitiveType }
77import io .swagger .v3 .oas .annotations .Parameter
8- import io .swagger .v3 .oas .annotations .media .Schema .{ AccessMode , RequiredMode }
9- import io .swagger .v3 .oas .annotations .media .{ArraySchema , Schema as SchemaAnnotation }
8+ import io .swagger .v3 .oas .annotations .media .Schema .AccessMode
9+ import io .swagger .v3 .oas .annotations .media .{Schema as SchemaAnnotation }
1010import io .swagger .v3 .oas .models .media .Schema
1111
12- import java .lang .annotation .Annotation
1312import java .lang .reflect .InvocationTargetException
1413import java .util .Iterator
1514import scala .reflect .Enum
@@ -113,7 +112,7 @@ class SwaggerScala3EnumModelConverter extends ModelResolver(Json.mapper()) {
113112 private def setRequired (annotatedType : AnnotatedType ): Unit = annotatedType match {
114113 case _ : AnnotatedTypeForOption => // not required
115114 case _ => {
116- val required = getRequiredSettings(annotatedType).headOption.getOrElse(true )
115+ val required = SwaggerScalaModelConverter . getRequiredSettings(annotatedType).headOption.getOrElse(true )
117116 if (required) {
118117 Option (annotatedType.getParent).foreach { parent =>
119118 Option (annotatedType.getPropertyName).foreach { n =>
@@ -124,48 +123,6 @@ class SwaggerScala3EnumModelConverter extends ModelResolver(Json.mapper()) {
124123 }
125124 }
126125
127- private def getRequiredSettings (annotatedType : AnnotatedType ): Seq [Boolean ] = annotatedType match {
128- case _ : AnnotatedTypeForOption => Seq .empty
129- case _ => getRequiredSettings(nullSafeList(annotatedType.getCtxAnnotations))
130- }
131-
132- private def getRequiredSettings (annotations : Seq [Annotation ]): Seq [Boolean ] = {
133- val flags = annotations.collect {
134- case p : Parameter => if (p.required()) RequiredMode .REQUIRED else RequiredMode .NOT_REQUIRED
135- case s : SchemaAnnotation => {
136- if (s.requiredMode() == RequiredMode .AUTO ) {
137- if (s.required()) {
138- RequiredMode .REQUIRED
139- } else if (SwaggerScalaModelConverter .isRequiredBasedOnAnnotation) {
140- RequiredMode .NOT_REQUIRED
141- } else {
142- RequiredMode .AUTO
143- }
144- } else {
145- s.requiredMode()
146- }
147- }
148- case a : ArraySchema => {
149- if (a.arraySchema().requiredMode() == RequiredMode .AUTO ) {
150- if (a.arraySchema().required()) {
151- RequiredMode .REQUIRED
152- } else if (SwaggerScalaModelConverter .isRequiredBasedOnAnnotation) {
153- RequiredMode .NOT_REQUIRED
154- } else {
155- RequiredMode .AUTO
156- }
157- } else {
158- a.arraySchema().requiredMode()
159- }
160- }
161- }
162- flags.flatMap {
163- case RequiredMode .REQUIRED => Some (true )
164- case RequiredMode .NOT_REQUIRED => Some (false )
165- case _ => None
166- }
167- }
168-
169126 private def nullSafeList [T ](array : Array [T ]): List [T ] = Option (array) match {
170127 case None => List .empty[T ]
171128 case Some (arr) => arr.toList
0 commit comments