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 { DataModelReaderDispatcher } from '../../core/io/DataModelReaderDispatcher';
/**
 * Constructor.
 * @param {*} json
 * @param {AaiDataModelReader} reader
 * @class
 * @extends DataModelReaderDispatcher
 * @author eric.wittmann@gmail.com
 */
var AaiDataModelReaderDispatcher = /** @class */ (function (_super) {
    __extends(AaiDataModelReaderDispatcher, _super);
    function AaiDataModelReaderDispatcher(json, reader) {
        var _this = _super.call(this, json, reader) || this;
        if (_this.aaiReader === undefined)
            _this.aaiReader = null;
        _this.aaiReader = reader;
        return _this;
    }
    /**
     *
     * @param {AuthorizationCodeOAuthFlow} node
     */
    AaiDataModelReaderDispatcher.prototype.visitAuthorizationCodeOAuthFlow = function (node) {
        this.aaiReader.readOAuthFlow(this.json, node);
    };
    /**
     *
     * @param {AaiChannelItem} node
     */
    AaiDataModelReaderDispatcher.prototype.visitChannelItem = function (node) {
        this.aaiReader.readChannelItem(this.json, node);
    };
    /**
     *
     * @param {ClientCredentialsOAuthFlow} node
     */
    AaiDataModelReaderDispatcher.prototype.visitClientCredentialsOAuthFlow = function (node) {
        this.aaiReader.readOAuthFlow(this.json, node);
    };
    /**
     *
     * @param {Components} node
     */
    AaiDataModelReaderDispatcher.prototype.visitComponents = function (node) {
        this.aaiReader.readComponents(this.json, node);
    };
    /**
     *
     * @param {AaiCorrelationId} node
     */
    AaiDataModelReaderDispatcher.prototype.visitCorrelationId = function (node) {
        this.aaiReader.readCorrelationId(this.json, node);
    };
    /**
     *
     * @param {AaiHeaderItem} node
     */
    AaiDataModelReaderDispatcher.prototype.visitHeaderItem = function (node) {
        this.aaiReader.readHeaderItem(this.json, node);
    };
    /**
     *
     * @param {ImplicitOAuthFlow} node
     */
    AaiDataModelReaderDispatcher.prototype.visitImplicitOAuthFlow = function (node) {
        this.aaiReader.readOAuthFlow(this.json, node);
    };
    /**
     *
     * @param {AaiMessage} node
     */
    AaiDataModelReaderDispatcher.prototype.visitMessage = function (node) {
        this.aaiReader.readMessage(this.json, node);
    };
    /**
     *
     * @param {AaiMessageTrait} node
     */
    AaiDataModelReaderDispatcher.prototype.visitMessageTrait = function (node) {
        this.aaiReader.readMessageTrait(this.json, node);
    };
    /**
     *
     * @param {AaiMessageTraitDefinition} node
     */
    AaiDataModelReaderDispatcher.prototype.visitMessageTraitDefinition = function (node) {
        this.aaiReader.readMessageTrait(this.json, node);
    };
    /**
     *
     * @param {OAuthFlows} node
     */
    AaiDataModelReaderDispatcher.prototype.visitOAuthFlows = function (node) {
        this.aaiReader.readOAuthFlows(this.json, node);
    };
    /**
     *
     * @param {AaiOperationTrait} node
     */
    AaiDataModelReaderDispatcher.prototype.visitOperationTrait = function (node) {
        this.aaiReader.readOperationTrait(this.json, node);
    };
    /**
     *
     * @param {AaiOperationTraitDefinition} node
     */
    AaiDataModelReaderDispatcher.prototype.visitOperationTraitDefinition = function (node) {
        this.aaiReader.readOperationTrait(this.json, node);
    };
    /**
     *
     * @param {PasswordOAuthFlow} node
     */
    AaiDataModelReaderDispatcher.prototype.visitPasswordOAuthFlow = function (node) {
        this.aaiReader.readOAuthFlow(this.json, node);
    };
    /**
     *
     * @param {Server} node
     */
    AaiDataModelReaderDispatcher.prototype.visitServer = function (node) {
        this.aaiReader.readServer(this.json, node);
    };
    /**
     *
     * @param {ServerVariable} node
     */
    AaiDataModelReaderDispatcher.prototype.visitServerVariable = function (node) {
        this.aaiReader.readServerVariable(this.json, node);
    };
    /**
     *
     * @param {AaiParameter} node
     */
    AaiDataModelReaderDispatcher.prototype.visitAaiParameter = function (node) {
        this.aaiReader.readAaiParameter(this.json, node);
    };
    /**
     *
     * @param {AaiServerBindings} node
     */
    AaiDataModelReaderDispatcher.prototype.visitServerBindings = function (node) {
        this.aaiReader.readServerBindings(this.json, node);
    };
    /**
     *
     * @param {AaiServerBindingsDefinition} node
     */
    AaiDataModelReaderDispatcher.prototype.visitServerBindingsDefinition = function (node) {
        this.aaiReader.readServerBindings(this.json, node);
    };
    /**
     *
     * @param {AaiOperationBindings} node
     */
    AaiDataModelReaderDispatcher.prototype.visitOperationBindings = function (node) {
        this.aaiReader.readOperationBindings(this.json, node);
    };
    /**
     *
     * @param {AaiOperationBindingsDefinition} node
     */
    AaiDataModelReaderDispatcher.prototype.visitOperationBindingsDefinition = function (node) {
        this.aaiReader.readOperationBindings(this.json, node);
    };
    /**
     *
     * @param {AaiMessageBindings} node
     */
    AaiDataModelReaderDispatcher.prototype.visitMessageBindings = function (node) {
        this.aaiReader.readMessageBindings(this.json, node);
    };
    /**
     *
     * @param {AaiMessageBindingsDefinition} node
     */
    AaiDataModelReaderDispatcher.prototype.visitMessageBindingsDefinition = function (node) {
        this.aaiReader.readMessageBindings(this.json, node);
    };
    /**
     *
     * @param {AaiChannelBindings} node
     */
    AaiDataModelReaderDispatcher.prototype.visitChannelBindings = function (node) {
        this.aaiReader.readChannelBindings(this.json, node);
    };
    /**
     *
     * @param {AaiChannelBindingsDefinition} node
     */
    AaiDataModelReaderDispatcher.prototype.visitChannelBindingsDefinition = function (node) {
        this.aaiReader.readChannelBindings(this.json, node);
    };
    return AaiDataModelReaderDispatcher;
}(DataModelReaderDispatcher));
export { AaiDataModelReaderDispatcher };
AaiDataModelReaderDispatcher["__class"] = "io.apicurio.datamodels.asyncapi.io.AaiDataModelReaderDispatcher";
AaiDataModelReaderDispatcher["__interfaces"] = ["io.apicurio.datamodels.core.visitors.IVisitor", "io.apicurio.datamodels.asyncapi.visitors.IAaiVisitor"];
//# sourceMappingURL=AaiDataModelReaderDispatcher.js.map