var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
import { OasSchema } from '../../models/OasSchema';
/**
 * @author eric.wittmann@gmail.com
 * @class
 * @extends OasSchema
 */
var Oas20Schema = /** @class */ (function (_super) {
    __extends(Oas20Schema, _super);
    function Oas20Schema() {
        var _this = _super.call(this) || this;
        if (_this.discriminator === undefined)
            _this.discriminator = null;
        return _this;
    }
    /**
     * @see io.apicurio.datamodels.openapi.models.OasSchema#createExternalDocumentation()
     * @return {ExternalDocumentation}
     */
    Oas20Schema.prototype.createExternalDocumentation = function () {
        var rval = new Oas20ExternalDocumentation();
        rval._ownerDocument = this.ownerDocument();
        rval._parent = this;
        return rval;
    };
    /**
     * @see io.apicurio.datamodels.openapi.models.OasSchema#createXML()
     * @return {OasXML}
     */
    Oas20Schema.prototype.createXML = function () {
        var rval = new Oas20XML();
        rval._ownerDocument = this.ownerDocument();
        rval._parent = this;
        return rval;
    };
    /**
     * @see io.apicurio.datamodels.openapi.models.OasSchema#createAllOfSchema()
     * @return {OasSchema}
     */
    Oas20Schema.prototype.createAllOfSchema = function () {
        var rval = new Oas20Schema.Oas20AllOfSchema();
        rval._ownerDocument = this.ownerDocument();
        rval._parent = this;
        return rval;
    };
    /**
     * @see io.apicurio.datamodels.openapi.models.OasSchema#createItemsSchema()
     * @return {OasSchema}
     */
    Oas20Schema.prototype.createItemsSchema = function () {
        var rval = new Oas20Schema.Oas20ItemsSchema();
        rval._ownerDocument = this.ownerDocument();
        rval._parent = this;
        return rval;
    };
    /**
     * @see io.apicurio.datamodels.openapi.models.OasSchema#createAdditionalPropertiesSchema()
     * @return {OasSchema}
     */
    Oas20Schema.prototype.createAdditionalPropertiesSchema = function () {
        var rval = new Oas20Schema.Oas20AdditionalPropertiesSchema();
        rval._ownerDocument = this.ownerDocument();
        rval._parent = this;
        return rval;
    };
    /**
     * @see io.apicurio.datamodels.openapi.models.OasSchema#createPropertySchema(java.lang.String)
     * @param {string} propertyName
     * @return {OasSchema}
     */
    Oas20Schema.prototype.createPropertySchema = function (propertyName) {
        var rval = new Oas20Schema.Oas20PropertySchema(propertyName);
        rval._ownerDocument = this.ownerDocument();
        rval._parent = this;
        return rval;
    };
    return Oas20Schema;
}(OasSchema));
export { Oas20Schema };
Oas20Schema["__class"] = "io.apicurio.datamodels.openapi.v2.models.Oas20Schema";
Oas20Schema["__interfaces"] = ["io.apicurio.datamodels.core.models.IVisitable", "io.apicurio.datamodels.core.models.IReferenceNode", "io.apicurio.datamodels.core.models.common.IExternalDocumentationParent"];
(function (Oas20Schema) {
    var Oas20AdditionalPropertiesSchema = /** @class */ (function (_super) {
        __extends(Oas20AdditionalPropertiesSchema, _super);
        function Oas20AdditionalPropertiesSchema() {
            return _super.call(this) || this;
        }
        /**
         * @see io.apicurio.datamodels.core.models.common.Schema#accept(io.apicurio.datamodels.core.visitors.IVisitor)
         * @param {*} visitor
         */
        Oas20AdditionalPropertiesSchema.prototype.accept = function (visitor) {
            var viz = visitor;
            viz.visitAdditionalPropertiesSchema(this);
        };
        return Oas20AdditionalPropertiesSchema;
    }(Oas20Schema));
    Oas20Schema.Oas20AdditionalPropertiesSchema = Oas20AdditionalPropertiesSchema;
    Oas20AdditionalPropertiesSchema["__class"] = "io.apicurio.datamodels.openapi.v2.models.Oas20Schema.Oas20AdditionalPropertiesSchema";
    Oas20AdditionalPropertiesSchema["__interfaces"] = ["io.apicurio.datamodels.core.models.IVisitable", "io.apicurio.datamodels.core.models.IReferenceNode", "io.apicurio.datamodels.core.models.common.IExternalDocumentationParent"];
    var Oas20ItemsSchema = /** @class */ (function (_super) {
        __extends(Oas20ItemsSchema, _super);
        function Oas20ItemsSchema() {
            return _super.call(this) || this;
        }
        /**
         * @see io.apicurio.datamodels.core.models.common.Schema#accept(io.apicurio.datamodels.core.visitors.IVisitor)
         * @param {*} visitor
         */
        Oas20ItemsSchema.prototype.accept = function (visitor) {
            var viz = visitor;
            viz.visitItemsSchema(this);
        };
        return Oas20ItemsSchema;
    }(Oas20Schema));
    Oas20Schema.Oas20ItemsSchema = Oas20ItemsSchema;
    Oas20ItemsSchema["__class"] = "io.apicurio.datamodels.openapi.v2.models.Oas20Schema.Oas20ItemsSchema";
    Oas20ItemsSchema["__interfaces"] = ["io.apicurio.datamodels.core.models.IVisitable", "io.apicurio.datamodels.core.models.IReferenceNode", "io.apicurio.datamodels.core.models.common.IExternalDocumentationParent"];
    var Oas20AllOfSchema = /** @class */ (function (_super) {
        __extends(Oas20AllOfSchema, _super);
        function Oas20AllOfSchema() {
            return _super.call(this) || this;
        }
        /**
         * @see io.apicurio.datamodels.core.models.common.Schema#accept(io.apicurio.datamodels.core.visitors.IVisitor)
         * @param {*} visitor
         */
        Oas20AllOfSchema.prototype.accept = function (visitor) {
            var viz = visitor;
            viz.visitAllOfSchema(this);
        };
        return Oas20AllOfSchema;
    }(Oas20Schema));
    Oas20Schema.Oas20AllOfSchema = Oas20AllOfSchema;
    Oas20AllOfSchema["__class"] = "io.apicurio.datamodels.openapi.v2.models.Oas20Schema.Oas20AllOfSchema";
    Oas20AllOfSchema["__interfaces"] = ["io.apicurio.datamodels.core.models.IVisitable", "io.apicurio.datamodels.core.models.IReferenceNode", "io.apicurio.datamodels.core.models.common.IExternalDocumentationParent"];
    /**
     * Constructor.
     * @param {string} propertyName
     * @class
     * @extends Oas20Schema
     */
    var Oas20PropertySchema = /** @class */ (function (_super) {
        __extends(Oas20PropertySchema, _super);
        function Oas20PropertySchema(propertyName) {
            var _this = _super.call(this) || this;
            if (_this._propertyName === undefined)
                _this._propertyName = null;
            _this._propertyName = propertyName;
            return _this;
        }
        /**
         * @see io.apicurio.datamodels.openapi.models.IOasPropertySchema#getPropertyName()
         * @return {string}
         */
        Oas20PropertySchema.prototype.getPropertyName = function () {
            return this._propertyName;
        };
        /**
         *
         * @return {string}
         */
        Oas20PropertySchema.prototype.getName = function () {
            return this._propertyName;
        };
        /**
         * @see io.apicurio.datamodels.openapi.models.IOasPropertySchema#rename(java.lang.String)
         * @param {string} newName
         */
        Oas20PropertySchema.prototype.rename = function (newName) {
            this._propertyName = newName;
        };
        /**
         * @see io.apicurio.datamodels.core.models.common.Schema#accept(io.apicurio.datamodels.core.visitors.IVisitor)
         * @param {*} visitor
         */
        Oas20PropertySchema.prototype.accept = function (visitor) {
            var viz = visitor;
            viz.visitPropertySchema(this);
        };
        return Oas20PropertySchema;
    }(Oas20Schema));
    Oas20Schema.Oas20PropertySchema = Oas20PropertySchema;
    Oas20PropertySchema["__class"] = "io.apicurio.datamodels.openapi.v2.models.Oas20Schema.Oas20PropertySchema";
    Oas20PropertySchema["__interfaces"] = ["io.apicurio.datamodels.openapi.models.IOasPropertySchema", "io.apicurio.datamodels.core.models.IVisitable", "io.apicurio.datamodels.core.models.IReferenceNode", "io.apicurio.datamodels.core.models.common.INamed", "io.apicurio.datamodels.core.models.common.IExternalDocumentationParent"];
})(Oas20Schema || (Oas20Schema = {}));
import { Oas20XML } from './Oas20XML';
import { Oas20ExternalDocumentation } from './Oas20ExternalDocumentation';
//# sourceMappingURL=Oas20Schema.js.map