@@ -7,12 +7,10 @@ import io.swagger.v3.core.converter._
77import io .swagger .v3 .core .jackson .ModelResolver
88import io .swagger .v3 .core .util .{Json , PrimitiveType }
99import io .swagger .v3 .oas .annotations .Parameter
10- import io .swagger .v3 .oas .annotations .media .Schema .{ AccessMode , RequiredMode }
11- import io .swagger .v3 .oas .annotations .media .{ArraySchema , Schema => SchemaAnnotation }
10+ import io .swagger .v3 .oas .annotations .media .Schema .AccessMode
11+ import io .swagger .v3 .oas .annotations .media .{Schema => SchemaAnnotation }
1212import io .swagger .v3 .oas .models .media .Schema
1313
14- import java .lang .annotation .Annotation
15-
1614class SwaggerEnumeratumModelConverter extends ModelResolver (Json .mapper()) {
1715 private val enumEntryClass = classOf [EnumEntry ]
1816
@@ -66,14 +64,14 @@ class SwaggerEnumeratumModelConverter extends ModelResolver(Json.mapper()) {
6664 private def isEnum (cls : Class [_]): Boolean = enumEntryClass.isAssignableFrom(cls)
6765
6866 private def getValues (cls : Class [_]): Seq [String ] = {
69- val enum = Class .forName(cls.getName + " $" ).getField(" MODULE$" ).get(null ).asInstanceOf [Enum [EnumEntry ]]
70- enum .values.map(_.entryName)
67+ val enumEntry = Class .forName(cls.getName + " $" ).getField(" MODULE$" ).get(null ).asInstanceOf [Enum [EnumEntry ]]
68+ enumEntry .values.map(_.entryName)
7169 }
7270
7371 private def setRequired (annotatedType : AnnotatedType ): Unit = annotatedType match {
7472 case _ : AnnotatedTypeForOption => // not required
7573 case _ => {
76- val required = getRequiredSettings(annotatedType).headOption.getOrElse(true )
74+ val required = SwaggerScalaModelConverter . getRequiredSettings(annotatedType).headOption.getOrElse(true )
7775 if (required) {
7876 Option (annotatedType.getParent).foreach { parent =>
7977 Option (annotatedType.getPropertyName).foreach { n =>
@@ -84,48 +82,6 @@ class SwaggerEnumeratumModelConverter extends ModelResolver(Json.mapper()) {
8482 }
8583 }
8684
87- private def getRequiredSettings (annotatedType : AnnotatedType ): Seq [Boolean ] = annotatedType match {
88- case _ : AnnotatedTypeForOption => Seq .empty
89- case _ => getRequiredSettings(nullSafeList(annotatedType.getCtxAnnotations))
90- }
91-
92- private def getRequiredSettings (annotations : Seq [Annotation ]): Seq [Boolean ] = {
93- val flags = annotations.collect {
94- case p : Parameter => if (p.required()) RequiredMode .REQUIRED else RequiredMode .NOT_REQUIRED
95- case s : SchemaAnnotation => {
96- if (s.requiredMode() == RequiredMode .AUTO ) {
97- if (s.required()) {
98- RequiredMode .REQUIRED
99- } else if (SwaggerScalaModelConverter .isRequiredBasedOnAnnotation) {
100- RequiredMode .NOT_REQUIRED
101- } else {
102- RequiredMode .AUTO
103- }
104- } else {
105- s.requiredMode()
106- }
107- }
108- case a : ArraySchema => {
109- if (a.arraySchema().requiredMode() == RequiredMode .AUTO ) {
110- if (a.arraySchema().required()) {
111- RequiredMode .REQUIRED
112- } else if (SwaggerScalaModelConverter .isRequiredBasedOnAnnotation) {
113- RequiredMode .NOT_REQUIRED
114- } else {
115- RequiredMode .AUTO
116- }
117- } else {
118- a.arraySchema().requiredMode()
119- }
120- }
121- }
122- flags.flatMap {
123- case RequiredMode .REQUIRED => Some (true )
124- case RequiredMode .NOT_REQUIRED => Some (false )
125- case _ => None
126- }
127- }
128-
12985 private def nullSafeList [T ](array : Array [T ]): List [T ] = Option (array) match {
13086 case None => List .empty[T ]
13187 case Some (arr) => arr.toList
0 commit comments