@Test(description = "should deserialize a property with vendor extensions of different types") public void testDeserializePropertyWithVendorExtensions() throws Exception { OpenAPI oas = TestUtils.deserializeJsonFileFromClasspath("specFiles/propertyWithVendorExtensions.json", OpenAPI.class); Map<String, Object> oasVendorExtensions = oas.getExtensions(); Map<String, Object> vendorExtensions = ((Schema) oas.getComponents().getSchemas().get("Health").getProperties().get("status")).getExtensions(); assertVendorExtensions(oasVendorExtensions); assertVendorExtensions(vendorExtensions); //check for vendor extensions in array property types vendorExtensions = ((Schema) oas.getComponents().getSchemas().get("Health").getProperties().get("array")).getExtensions(); String xStringValue = (String) vendorExtensions.get("x-string-value"); assertNotNull(xStringValue); assertEquals(xStringValue, "string_value"); }
.writeOnly(subtypeModel.getWriteOnly()) .xml(subtypeModel.getXml()) .extensions(subtypeModel.getExtensions());
protected void addInternalExtensionToSchema(Schema schema, String name, Object value) { //Add internal extension directly, because addExtension filters extension names if (schema.getExtensions() == null) { schema.setExtensions(new HashMap<>()); } schema.getExtensions().put(name, value); }
/** * Copy vendor extensions from Property to another Property * * @param source source property * @param target target property */ public void copyVendorExtensions(Schema source, Schema target) { if(source.getExtensions() != null) { Map<String, Object> vendorExtensions = source.getExtensions(); for (String extName : vendorExtensions.keySet()) { target.addExtension(extName, vendorExtensions.get(extName)); } } }
/** * Copy vendor extensions from Property to another Property * * @param source source property * @param target target property */ public void copyVendorExtensions(Schema source, Schema target) { if(source.getExtensions() != null) { Map<String, Object> vendorExtensions = source.getExtensions(); for (String extName : vendorExtensions.keySet()) { target.addExtension(extName, vendorExtensions.get(extName)); } } }
/** * Copy vendor extensions from Property to another Property * * @param source source property * @param target target property */ public void copyVendorExtensions(Schema source, Schema target) { if(source.getExtensions() != null) { Map<String, Object> vendorExtensions = source.getExtensions(); for (String extName : vendorExtensions.keySet()) { target.addExtension(extName, vendorExtensions.get(extName)); } } }
/** * Copy vendor extensions from Model to another Model * * @param source source property * @param target target property */ public void copyVendorExtensions(Schema source, Schema target) { Map<String, Object> vendorExtensions = source.getExtensions(); if (vendorExtensions == null) { return; } for (String extName : vendorExtensions.keySet()) { target.addExtension(extName, vendorExtensions.get(extName)); } }
private boolean isSchemaWithAdditionalValues(Schema schema) { return nonNull(schema.getDescription()) || nonNull(schema.getExample()) || nonNull(schema.getXml()) || nonNull(schema.getReadOnly()) || (nonNull(schema.getExtensions()) && !schema.getExtensions().isEmpty()); }
private Map<String, Schema> filterProperties( Change.Type type, Map<String, Schema> properties, DiffContext context) { Map<String, Schema> result = new LinkedHashMap<>(); for (Map.Entry<String, Schema> entry : properties.entrySet()) { if (isPropertyApplicable(entry.getValue(), context) && openApiDiff .getExtensionsDiff() .isParentApplicable( type, entry.getValue(), ofNullable(entry.getValue().getExtensions()).orElse(new LinkedHashMap()), context)) { result.put(entry.getKey(), entry.getValue()); } else { // Child property is not applicable, so required cannot be applied changedSchema.getRequired().getIncreased().remove(entry.getKey()); } } return result; }
codegenProperty.xmlNamespace = propertySchema.getXml().getNamespace(); if (propertySchema.getExtensions() != null && !propertySchema.getExtensions().isEmpty()) { codegenProperty.getVendorExtensions().putAll(propertySchema.getExtensions()); codegenProperty.minItems = propertySchema.getMinItems(); String itemName = null; if (propertySchema.getExtensions() != null && propertySchema.getExtensions().get("x-item-name") != null) { itemName = propertySchema.getExtensions().get("x-item-name").toString();
codegenProperty.xmlNamespace = propertySchema.getXml().getNamespace(); if (propertySchema.getExtensions() != null && !propertySchema.getExtensions().isEmpty()) { codegenProperty.getVendorExtensions().putAll(propertySchema.getExtensions()); codegenProperty.minItems = propertySchema.getMinItems(); String itemName = null; if (propertySchema.getExtensions() != null && propertySchema.getExtensions().get("x-item-name") != null) { itemName = propertySchema.getExtensions().get("x-item-name").toString();
codegenModel.modelJson = Json.pretty(schema); codegenModel.externalDocumentation = schema.getExternalDocs(); if (schema.getExtensions() != null && !schema.getExtensions().isEmpty()) { codegenModel.getVendorExtensions().putAll(schema.getExtensions());
codegenModel.modelJson = Json.pretty(schema); codegenModel.externalDocumentation = schema.getExternalDocs(); if (schema.getExtensions() != null && !schema.getExtensions().isEmpty()) { codegenModel.getVendorExtensions().putAll(schema.getExtensions());
m.modelJson = Json.pretty(schema); m.externalDocumentation = schema.getExternalDocs(); if (schema.getExtensions() != null && !schema.getExtensions().isEmpty()) { m.getVendorExtensions().putAll(schema.getExtensions());
property.xmlNamespace = p.getXml().getNamespace(); if (p.getExtensions() != null && !p.getExtensions().isEmpty()) { property.getVendorExtensions().putAll(p.getExtensions()); property.minItems = p.getMinItems(); String itemName = null; if (p.getExtensions() != null && p.getExtensions().get("x-item-name") != null) { itemName = p.getExtensions().get("x-item-name").toString();
.diff(left.getExtensions(), right.getExtensions(), context) .ifPresent(changedSchema::setExtensions); openApiDiff
public AnyProperty(Schema prop) { if (prop != null) { setName(prop.getName()); setDescription(prop.getDescription()); setExample(prop.getExample()); setFormat(prop.getFormat()); setReadOnly(prop.getReadOnly()); setRequired(prop.getRequired()); setTitle(prop.getTitle()); setExtensions(prop.getExtensions()); setXml(prop.getXml()); setExternalDocs(prop.getExternalDocs()); setProperties(prop.getProperties()); set$ref(prop.get$ref()); } } }
.writeOnly(subtypeModel.getWriteOnly()) .xml(subtypeModel.getXml()) .extensions(subtypeModel.getExtensions());
composedSchema.setExclusiveMaximum(schema.getExclusiveMaximum()); composedSchema.setExclusiveMinimum(schema.getExclusiveMinimum()); composedSchema.setExtensions(schema.getExtensions()); composedSchema.setExternalDocs(schema.getExternalDocs()); composedSchema.setFormat(schema.getFormat());