/**
 * Constructor.
 * @param {DataModelReader} reader
 * @param {*} json
 * @class
 * @author eric.wittmann@gmail.com
 */
var DataModelReaderDispatcher = /** @class */ (function () {
    function DataModelReaderDispatcher(json, reader) {
        if (this.reader === undefined)
            this.reader = null;
        if (this.json === undefined)
            this.json = null;
        this.reader = reader;
        this.json = json;
    }
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitDocument(io.apicurio.datamodels.core.models.Document)
     * @param {Document} node
     */
    DataModelReaderDispatcher.prototype.visitDocument = function (node) {
        this.reader.readDocument(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitInfo(io.apicurio.datamodels.core.models.common.Info)
     * @param {Info} node
     */
    DataModelReaderDispatcher.prototype.visitInfo = function (node) {
        this.reader.readInfo(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitContact(io.apicurio.datamodels.core.models.common.Contact)
     * @param {Contact} node
     */
    DataModelReaderDispatcher.prototype.visitContact = function (node) {
        this.reader.readContact(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitLicense(io.apicurio.datamodels.core.models.common.License)
     * @param {License} node
     */
    DataModelReaderDispatcher.prototype.visitLicense = function (node) {
        this.reader.readLicense(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitTag(io.apicurio.datamodels.core.models.common.Tag)
     * @param {Tag} node
     */
    DataModelReaderDispatcher.prototype.visitTag = function (node) {
        this.reader.readTag(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitExternalDocumentation(io.apicurio.datamodels.core.models.common.ExternalDocumentation)
     * @param {ExternalDocumentation} node
     */
    DataModelReaderDispatcher.prototype.visitExternalDocumentation = function (node) {
        this.reader.readExternalDocumentation(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitExtension(io.apicurio.datamodels.core.models.Extension)
     * @param {Extension} node
     */
    DataModelReaderDispatcher.prototype.visitExtension = function (node) {
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityRequirement(io.apicurio.datamodels.core.models.common.SecurityRequirement)
     * @param {SecurityRequirement} node
     */
    DataModelReaderDispatcher.prototype.visitSecurityRequirement = function (node) {
        this.reader.readSecurityRequirement(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitValidationProblem(io.apicurio.datamodels.core.models.ValidationProblem)
     * @param {ValidationProblem} problem
     */
    DataModelReaderDispatcher.prototype.visitValidationProblem = function (problem) {
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchema(io.apicurio.datamodels.core.models.common.Schema)
     * @param {Schema} node
     */
    DataModelReaderDispatcher.prototype.visitSchema = function (node) {
        this.reader.readSchema(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchemaDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    DataModelReaderDispatcher.prototype.visitSchemaDefinition = function (node) {
        this.reader.readSchema(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameter(io.apicurio.datamodels.core.models.common.Parameter)
     * @param {Parameter} node
     */
    DataModelReaderDispatcher.prototype.visitParameter = function (node) {
        this.reader.readParameter(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameterDefinition(io.apicurio.datamodels.core.models.common.IDefinition)
     * @param {*} node
     */
    DataModelReaderDispatcher.prototype.visitParameterDefinition = function (node) {
        this.reader.readParameter(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitOperation(io.apicurio.datamodels.core.models.common.Operation)
     * @param {Operation} node
     */
    DataModelReaderDispatcher.prototype.visitOperation = function (node) {
        this.reader.readOperation(this.json, node);
    };
    /**
     * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityScheme(io.apicurio.datamodels.core.models.common.SecurityScheme)
     * @param {SecurityScheme} node
     */
    DataModelReaderDispatcher.prototype.visitSecurityScheme = function (node) {
        this.reader.readSecurityScheme(this.json, node);
    };
    return DataModelReaderDispatcher;
}());
export { DataModelReaderDispatcher };
DataModelReaderDispatcher["__class"] = "io.apicurio.datamodels.core.io.DataModelReaderDispatcher";
DataModelReaderDispatcher["__interfaces"] = ["io.apicurio.datamodels.core.visitors.IVisitor"];
//# sourceMappingURL=DataModelReaderDispatcher.js.map