/* Generated from Java with JSweet 2.3.7 - http://www.jsweet.org */
import { Aai20NodePathVisitor } from '../../asyncapi/v2/visitors/Aai20NodePathVisitor';
import { Oas20NodePathVisitor } from '../../openapi/v2/visitors/Oas20NodePathVisitor';
import { Oas30NodePathVisitor } from '../../openapi/v3/visitors/Oas30NodePathVisitor';
import { DocumentType } from '../models/DocumentType';
/**
 * @author eric.wittmann@gmail.com
 * @class
 */
var NodePathVisitorFactory = /** @class */ (function () {
    function NodePathVisitorFactory() {
    }
    NodePathVisitorFactory.createNodePathVisitor = function (doc) {
        switch ((doc.getDocumentType())) {
            case DocumentType.asyncapi2:
                return new Aai20NodePathVisitor();
            case DocumentType.openapi2:
                return new Oas20NodePathVisitor();
            case DocumentType.openapi3:
                return new Oas30NodePathVisitor();
            default:
                throw Object.defineProperty(new Error("Failed to create a node path visitor for type: " + doc.getDocumentType()), '__classes', { configurable: true, value: ['java.lang.Throwable', 'java.lang.Object', 'java.lang.RuntimeException', 'java.lang.Exception'] });
        }
    };
    return NodePathVisitorFactory;
}());
export { NodePathVisitorFactory };
NodePathVisitorFactory["__class"] = "io.apicurio.datamodels.core.factories.NodePathVisitorFactory";
//# sourceMappingURL=NodePathVisitorFactory.js.map