"use strict"; var __extends = (this && this.__extends) || (function () { var 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 function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require("../utils"); var validate_1 = require("../validate"); var XmlNode_1 = require("./XmlNode"); /** * Represents an XML CDATA section. * * An XML CDATA section is structured as follows, where `{data}` is the * character data of the section: * * ```xml * * ``` * * The `{data}` value is a property of this node. * * XmlCdata nodes cannot have any children. */ var XmlCdata = (function (_super) { __extends(XmlCdata, _super); /** * Initializes a new instance of the {@link XmlCdata} class. * * @param data The character data of the CDATA section. */ function XmlCdata(data) { var _this = _super.call(this) || this; _this.data = data; return _this; } Object.defineProperty(XmlCdata.prototype, "data", { /** * Gets the character data of the CDATA section. * * @returns The character data of the CDATA section. */ get: function () { return this._data; }, /** * Sets the character data of the CDATA section. * * @param data The character data of the CDATA section. */ set: function (data) { if (!utils_1.isString(data)) { throw new TypeError("character data should be a string"); } else if (!validate_1.validateChar(data)) { throw new Error("character data should not contain characters not" + " allowed in XML"); } else if (/]]>/.test(data)) { throw new Error("data should not contain the string ']]>'"); } this._data = data; }, enumerable: true, configurable: true }); /** * Throws an exception since {@link XmlCdata} nodes cannot have any * children. * * @returns This method does not return. */ XmlCdata.prototype.children = function () { throw new Error("XmlCdata nodes cannot have children"); }; /** * Throws an exception since {@link XmlCdata} nodes cannot have any * children. * * @param node This parameter is unused. * @param index This parameter is unused. * * @returns This method does not return. */ XmlCdata.prototype.insertChild = function (node, index) { throw new Error("XmlCdata nodes cannot have children"); }; /** * Throws an exception since {@link XmlCdata} nodes cannot have any * children. * * @param node This parameter is unused. * * @returns This method does not return. */ XmlCdata.prototype.removeChild = function (node) { throw new Error("XmlCdata nodes cannot have children"); }; /** * Throws an exception since {@link XmlCdata} nodes cannot have any * children. * * @param index This parameter is unused. * * @returns This method does not return. */ XmlCdata.prototype.removeChildAtIndex = function (index) { throw new Error("XmlCdata nodes cannot have children"); }; /** * Returns an XML string representation of this node. * * @param options Formatting options for the string representation. * * @returns An XML string representation of this node. */ XmlCdata.prototype.toString = function (options) { if (options === void 0) { options = {}; } return ""; }; return XmlCdata; }(XmlNode_1.default)); exports.default = XmlCdata;