|
24 | 24 | import io.swagger.v3.oas.models.media.DateTimeSchema; |
25 | 25 | import io.swagger.v3.oas.models.media.Discriminator; |
26 | 26 | import io.swagger.v3.oas.models.media.Encoding; |
| 27 | +import io.swagger.v3.oas.models.media.MapSchema; |
27 | 28 | import io.swagger.v3.oas.models.media.MediaType; |
28 | 29 | import io.swagger.v3.oas.models.media.Schema; |
29 | 30 | import io.swagger.v3.oas.models.media.XML; |
@@ -2023,7 +2024,7 @@ public Schema getSchema(ObjectNode node, String location, ParseResult result){ |
2023 | 2024 | ArrayNode allOfArray = getArray("allOf", node, false, location, result); |
2024 | 2025 | ArrayNode anyOfArray = getArray("anyOf", node, false, location, result); |
2025 | 2026 | ObjectNode itemsNode = getObject("items", node, false, location, result); |
2026 | | - |
| 2027 | + ObjectNode additionalPropertiesNode = getObject("additionalProperties", node, false, location, result); |
2027 | 2028 |
|
2028 | 2029 |
|
2029 | 2030 | if((allOfArray != null )||(anyOfArray != null)|| (oneOfArray != null)) { |
@@ -2075,6 +2076,31 @@ public Schema getSchema(ObjectNode node, String location, ParseResult result){ |
2075 | 2076 | schema = items; |
2076 | 2077 | } |
2077 | 2078 |
|
| 2079 | + if(additionalPropertiesNode != null){ |
| 2080 | + MapSchema mapSchema = new MapSchema(); |
| 2081 | + if (additionalPropertiesNode.getNodeType().equals(JsonNodeType.OBJECT)) { |
| 2082 | + ObjectNode additionalPropertiesObj = getObject("additionalProperties", node, false, location, result); |
| 2083 | + if (additionalPropertiesObj != null) { |
| 2084 | + Schema additionalProperties = getSchema(additionalPropertiesObj, location, result); |
| 2085 | + if (additionalProperties != null) { |
| 2086 | + mapSchema.setAdditionalProperties(additionalProperties); |
| 2087 | + } |
| 2088 | + } |
| 2089 | + } else if (additionalPropertiesNode.getNodeType().equals(JsonNodeType.BOOLEAN)) { |
| 2090 | + Boolean additionalProperties = getBoolean("additionalProperties", node, false, location, result); |
| 2091 | + if (additionalProperties != null) { |
| 2092 | + if (additionalProperties == true) { |
| 2093 | + mapSchema.setAdditionalProperties(additionalProperties); |
| 2094 | + }else{ |
| 2095 | + schema.setAdditionalProperties(additionalProperties); |
| 2096 | + } |
| 2097 | + } |
| 2098 | + } |
| 2099 | + schema = mapSchema; |
| 2100 | + } |
| 2101 | + |
| 2102 | + |
| 2103 | + |
2078 | 2104 | if (schema == null){ |
2079 | 2105 | schema = SchemaTypeUtil.createSchemaByType(node); |
2080 | 2106 | } |
@@ -2267,24 +2293,6 @@ public Schema getSchema(ObjectNode node, String location, ParseResult result){ |
2267 | 2293 | schema.setProperties(properties); |
2268 | 2294 | } |
2269 | 2295 |
|
2270 | | - |
2271 | | - if (node.get("additionalProperties") != null) { |
2272 | | - if (node.get("additionalProperties").getNodeType().equals(JsonNodeType.OBJECT)) { |
2273 | | - ObjectNode additionalPropertiesObj = getObject("additionalProperties", node, false, location, result); |
2274 | | - if (additionalPropertiesObj != null) { |
2275 | | - Schema additionalProperties = getSchema(additionalPropertiesObj, location, result); |
2276 | | - if (additionalProperties != null) { |
2277 | | - schema.setAdditionalProperties(additionalProperties); |
2278 | | - } |
2279 | | - } |
2280 | | - } else if (node.get("additionalProperties").getNodeType().equals(JsonNodeType.BOOLEAN)) { |
2281 | | - Boolean additionalProperties = getBoolean("additionalProperties", node, false, location, result); |
2282 | | - if (additionalProperties != null) { |
2283 | | - schema.setAdditionalProperties(additionalProperties); |
2284 | | - } |
2285 | | - |
2286 | | - } |
2287 | | - } |
2288 | 2296 | value = getString("description",node,false,location,result); |
2289 | 2297 | if (StringUtils.isNotBlank(value)) { |
2290 | 2298 | schema.setDescription(value); |
|
0 commit comments