Loading src/main/scala/com/kjetland/jackson/jsonSchema/JsonSchemaGenerator.scala +15 −7 Original line number Diff line number Diff line Loading @@ -215,6 +215,14 @@ class JsonSchemaGenerator(rootObjectMapper: ObjectMapper) { } private def getRequiredArrayNode(objectNode:ObjectNode):ArrayNode = { Option(objectNode.get("required")).map(_.asInstanceOf[ArrayNode]).getOrElse { val rn = JsonNodeFactory.instance.arrayNode() objectNode.set("required", rn) rn } } override def expectObjectFormat(_type: JavaType) = { val subTypes: List[SubTypeAndTypeName[_]] = Option(_type.getRawClass.getDeclaredAnnotation(classOf[JsonSubTypes])).map { Loading Loading @@ -258,13 +266,7 @@ class JsonSchemaGenerator(rootObjectMapper: ObjectMapper) { propertiesNode.set(subTypeSpecifierPropertyName, enumObjectNode) val requiredNode:ArrayNode = Option(propertiesNode.get("required")).map(_.asInstanceOf[ArrayNode]).getOrElse { val rn = JsonNodeFactory.instance.arrayNode() objectNode.set("required", rn) rn } requiredNode.add(subTypeSpecifierPropertyName) getRequiredArrayNode(objectNode).add(subTypeSpecifierPropertyName) None } Loading Loading @@ -304,6 +306,12 @@ class JsonSchemaGenerator(rootObjectMapper: ObjectMapper) { objectMapper.acceptJsonFormatVisitor(propertyType, createChild(thisPropertyNode)) // For some types we must set requeired val rawClass = writer.getType.getRawClass if ( rawClass.isPrimitive && rawClass.isAssignableFrom(classOf[Boolean])) { getRequiredArrayNode(thisObjectNode).add(propertyName) } } override def optionalProperty(name: String, handler: JsonFormatVisitable, propertyTypeHint: JavaType): Unit = { Loading Loading
src/main/scala/com/kjetland/jackson/jsonSchema/JsonSchemaGenerator.scala +15 −7 Original line number Diff line number Diff line Loading @@ -215,6 +215,14 @@ class JsonSchemaGenerator(rootObjectMapper: ObjectMapper) { } private def getRequiredArrayNode(objectNode:ObjectNode):ArrayNode = { Option(objectNode.get("required")).map(_.asInstanceOf[ArrayNode]).getOrElse { val rn = JsonNodeFactory.instance.arrayNode() objectNode.set("required", rn) rn } } override def expectObjectFormat(_type: JavaType) = { val subTypes: List[SubTypeAndTypeName[_]] = Option(_type.getRawClass.getDeclaredAnnotation(classOf[JsonSubTypes])).map { Loading Loading @@ -258,13 +266,7 @@ class JsonSchemaGenerator(rootObjectMapper: ObjectMapper) { propertiesNode.set(subTypeSpecifierPropertyName, enumObjectNode) val requiredNode:ArrayNode = Option(propertiesNode.get("required")).map(_.asInstanceOf[ArrayNode]).getOrElse { val rn = JsonNodeFactory.instance.arrayNode() objectNode.set("required", rn) rn } requiredNode.add(subTypeSpecifierPropertyName) getRequiredArrayNode(objectNode).add(subTypeSpecifierPropertyName) None } Loading Loading @@ -304,6 +306,12 @@ class JsonSchemaGenerator(rootObjectMapper: ObjectMapper) { objectMapper.acceptJsonFormatVisitor(propertyType, createChild(thisPropertyNode)) // For some types we must set requeired val rawClass = writer.getType.getRawClass if ( rawClass.isPrimitive && rawClass.isAssignableFrom(classOf[Boolean])) { getRequiredArrayNode(thisObjectNode).add(propertyName) } } override def optionalProperty(name: String, handler: JsonFormatVisitable, propertyTypeHint: JavaType): Unit = { Loading