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 __());
    };
})();
/* Generated from Java with JSweet 2.3.7 - http://www.jsweet.org */
import { DataModelReaderDispatcher } from '../../core/io/DataModelReaderDispatcher';
/**
 * Constructor.
 * @param {*} json
 * @param {OasDataModelReader} reader
 * @class
 * @extends DataModelReaderDispatcher
 * @author eric.wittmann@gmail.com
 */
var OasDataModelReaderDispatcher = /** @class */ (function (_super) {
    __extends(OasDataModelReaderDispatcher, _super);
    function OasDataModelReaderDispatcher(json, reader) {
        return _super.call(this, json, reader) || this;
    }
    /**
     * Casts the reader.
     * @return {OasDataModelReader}
     * @private
     */
    /*private*/ OasDataModelReaderDispatcher.prototype.oasReader = function () {
        return this.reader;
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPaths(io.apicurio.datamodels.openapi.models.OasPaths)
     * @param {OasPaths} node
     */
    OasDataModelReaderDispatcher.prototype.visitPaths = function (node) {
        this.oasReader().readPaths(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPathItem(io.apicurio.datamodels.openapi.models.OasPathItem)
     * @param {OasPathItem} node
     */
    OasDataModelReaderDispatcher.prototype.visitPathItem = function (node) {
        this.oasReader().readPathItem(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponse(io.apicurio.datamodels.openapi.models.OasResponse)
     * @param {OasResponse} node
     */
    OasDataModelReaderDispatcher.prototype.visitResponse = function (node) {
        this.oasReader().readResponse(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponses(io.apicurio.datamodels.openapi.models.OasResponses)
     * @param {OasResponses} node
     */
    OasDataModelReaderDispatcher.prototype.visitResponses = function (node) {
        this.oasReader().readResponses(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitXML(io.apicurio.datamodels.openapi.models.OasXML)
     * @param {OasXML} node
     */
    OasDataModelReaderDispatcher.prototype.visitXML = function (node) {
        this.oasReader().readXML(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitAllOfSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    OasDataModelReaderDispatcher.prototype.visitAllOfSchema = function (node) {
        this.oasReader().readSchema(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitItemsSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    OasDataModelReaderDispatcher.prototype.visitItemsSchema = function (node) {
        this.oasReader().readSchema(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitAdditionalPropertiesSchema(io.apicurio.datamodels.openapi.models.OasSchema)
     * @param {OasSchema} node
     */
    OasDataModelReaderDispatcher.prototype.visitAdditionalPropertiesSchema = function (node) {
        this.oasReader().readSchema(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitPropertySchema(io.apicurio.datamodels.openapi.models.IOasPropertySchema)
     * @param {*} node
     */
    OasDataModelReaderDispatcher.prototype.visitPropertySchema = function (node) {
        this.oasReader().readSchema(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitHeader(io.apicurio.datamodels.openapi.models.OasHeader)
     * @param {OasHeader} node
     */
    OasDataModelReaderDispatcher.prototype.visitHeader = function (node) {
        this.oasReader().readHeader(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitResponseDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    OasDataModelReaderDispatcher.prototype.visitResponseDefinition = function (node) {
        this.oasReader().readResponse(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.openapi.visitors.IOasVisitor#visitExample(io.apicurio.datamodels.core.models.common.IExample)
     * @param {*} node
     */
    OasDataModelReaderDispatcher.prototype.visitExample = function (node) {
        throw Object.defineProperty(new Error("Must be implemented by subclasses."), '__classes', { configurable: true, value: ['java.lang.Throwable', 'java.lang.Object', 'java.lang.RuntimeException', 'java.lang.Exception'] });
    };
    return OasDataModelReaderDispatcher;
}(DataModelReaderDispatcher));
export { OasDataModelReaderDispatcher };
OasDataModelReaderDispatcher["__class"] = "io.apicurio.datamodels.openapi.io.OasDataModelReaderDispatcher";
OasDataModelReaderDispatcher["__interfaces"] = ["io.apicurio.datamodels.core.visitors.IVisitor", "io.apicurio.datamodels.openapi.visitors.IOasVisitor"];
//# sourceMappingURL=OasDataModelReaderDispatcher.js.map