use of io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30OneOfSchema in project apicurio-data-models by Apicurio.
the class AbstractSchemaInhCommand method copySchemaJsTo.
/**
* Copies the given list of schemas to the appropriate property on the model
* @param schemas
* @param targetSchema
* @param inheritanceType
*/
protected void copySchemaJsTo(List<Object> schemas, OasSchema targetSchema, String inheritanceType) {
if (NodeCompat.equals(TYPE_ALL_OF, inheritanceType)) {
schemas.forEach(ser -> {
targetSchema.addAllOfSchema((OasSchema) Library.readNode(ser, targetSchema.createAllOfSchema()));
});
}
if (NodeCompat.equals(TYPE_ANY_OF, inheritanceType)) {
Oas30Schema targetSchema30 = (Oas30Schema) targetSchema;
schemas.forEach(ser -> {
targetSchema30.addAnyOfSchema((Oas30AnyOfSchema) Library.readNode(ser, targetSchema30.createAnyOfSchema()));
});
}
if (NodeCompat.equals(TYPE_ONE_OF, inheritanceType)) {
Oas30Schema targetSchema30 = (Oas30Schema) targetSchema;
schemas.forEach(ser -> {
targetSchema30.addOneOfSchema((Oas30OneOfSchema) Library.readNode(ser, targetSchema30.createOneOfSchema()));
});
}
}
use of io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30OneOfSchema in project apicurio-data-models by Apicurio.
the class Oas30DataModelReader method readSchema.
/**
* @see io.apicurio.datamodels.openapi.io.OasDataModelReader#readSchema(java.lang.Object, io.apicurio.datamodels.core.models.common.Schema)
*/
@Override
public void readSchema(Object json, Schema node) {
Oas30Schema schema = (Oas30Schema) node;
List<Object> oneOf = JsonCompat.consumePropertyArray(json, Constants.PROP_ONE_OF);
List<Object> anyOf = JsonCompat.consumePropertyArray(json, Constants.PROP_ANY_OF);
Object not = JsonCompat.consumeProperty(json, Constants.PROP_NOT);
Object discriminator = JsonCompat.consumeProperty(json, Constants.PROP_DISCRIMINATOR);
Boolean nullable = JsonCompat.consumePropertyBoolean(json, Constants.PROP_NULLABLE);
Boolean writeOnly = JsonCompat.consumePropertyBoolean(json, Constants.PROP_WRITE_ONLY);
Boolean deprecated = JsonCompat.consumePropertyBoolean(json, Constants.PROP_DEPRECATED);
schema.nullable = nullable;
schema.writeOnly = writeOnly;
schema.deprecated = deprecated;
if (oneOf != null) {
oneOf.forEach(oneOfSchema -> {
Oas30OneOfSchema oneOfSchemaModel = schema.createOneOfSchema();
this.readSchema(oneOfSchema, oneOfSchemaModel);
schema.addOneOfSchema(oneOfSchemaModel);
});
}
if (anyOf != null) {
anyOf.forEach(anyOfSchema -> {
Oas30AnyOfSchema anyOfSchemaModel = schema.createAnyOfSchema();
this.readSchema(anyOfSchema, anyOfSchemaModel);
schema.addAnyOfSchema(anyOfSchemaModel);
});
}
if (not != null) {
schema.not = schema.createNotSchema();
this.readSchema(not, schema.not);
}
if (discriminator != null) {
schema.discriminator = schema.createDiscriminator();
this.readDiscriminator(discriminator, schema.discriminator);
}
super.readSchema(json, node);
}
use of io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30OneOfSchema in project apicurio-data-models by Apicurio.
the class AddChildSchemaCommand method execute.
/**
* @see io.apicurio.datamodels.cmd.ICommand#execute(io.apicurio.datamodels.core.models.Document)
*/
@Override
public void execute(Document document) {
LoggerCompat.info("[AddChildSchemaCommand] Executing.");
this._nullChildList = false;
this._childIndex = -1;
OasSchema schema = (OasSchema) this._schemaPath.resolve(document);
if (this.isNullOrUndefined(schema)) {
return;
}
List<OasSchema> schemas = null;
OasSchema newSchema = null;
if (NodeCompat.equals(TYPE_ALL_OF, _newChildSchemaType)) {
schemas = schema.allOf;
newSchema = schema.createAllOfSchema();
Library.readNode(this._newChildSchemaObj, newSchema);
schema.addAllOfSchema(newSchema);
this._childIndex = schema.allOf.size() - 1;
}
if (NodeCompat.equals(TYPE_ANY_OF, _newChildSchemaType)) {
Oas30Schema schema30 = (Oas30Schema) schema;
schemas = schema30.anyOf;
newSchema = ((Oas30Schema) schema).createAnyOfSchema();
Library.readNode(this._newChildSchemaObj, newSchema);
((Oas30Schema) schema).addAnyOfSchema((Oas30AnyOfSchema) newSchema);
this._childIndex = ((Oas30Schema) schema).anyOf.size() - 1;
}
if (NodeCompat.equals(TYPE_ONE_OF, _newChildSchemaType)) {
Oas30Schema schema30 = (Oas30Schema) schema;
schemas = schema30.oneOf;
newSchema = ((Oas30Schema) schema).createOneOfSchema();
Library.readNode(this._newChildSchemaObj, newSchema);
((Oas30Schema) schema).addOneOfSchema((Oas30OneOfSchema) newSchema);
this._childIndex = ((Oas30Schema) schema).oneOf.size() - 1;
}
if (schemas == null) {
this._nullChildList = true;
}
}
Aggregations