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 { Node } from './Node';
/**
 * Models a single extension property of a node in the data model.  For example, if the
 * Info node has a property called "x-vendor-zipcode" with a value of "90210", that would
 * result in an instance of this class with appropriate values for "name" and "value".
 * @author eric.wittmann@gmail.com
 * @class
 * @extends Node
 */
var Extension = /** @class */ (function (_super) {
    __extends(Extension, _super);
    function Extension() {
        var _this = _super.call(this) || this;
        if (_this.name === undefined)
            _this.name = null;
        if (_this.value === undefined)
            _this.value = null;
        return _this;
    }
    /**
     * @see io.apicurio.datamodels.core.models.Node#accept(io.apicurio.datamodels.core.visitors.IVisitor)
     * @param {*} visitor
     */
    Extension.prototype.accept = function (visitor) {
        visitor.visitExtension(this);
    };
    return Extension;
}(Node));
export { Extension };
Extension["__class"] = "io.apicurio.datamodels.core.models.Extension";
Extension["__interfaces"] = ["io.apicurio.datamodels.core.models.IVisitable"];
//# sourceMappingURL=Extension.js.map