// Generated by CoffeeScript 2.4.1 (function() { var NodeType, XMLDTDNotation, XMLNode; XMLNode = require('./XMLNode'); NodeType = require('./NodeType'); // Represents a NOTATION entry in the DTD module.exports = XMLDTDNotation = (function() { class XMLDTDNotation extends XMLNode { // Initializes a new instance of `XMLDTDNotation` // `parent` the parent `XMLDocType` element // `name` the name of the notation // `value` an object with external entity details // `value.pubID` public identifier // `value.sysID` system identifier constructor(parent, name, value) { super(parent); if (name == null) { throw new Error("Missing DTD notation name. " + this.debugInfo(name)); } if (!value.pubID && !value.sysID) { throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name)); } this.name = this.stringify.name(name); this.type = NodeType.NotationDeclaration; if (value.pubID != null) { this.pubID = this.stringify.dtdPubID(value.pubID); } if (value.sysID != null) { this.sysID = this.stringify.dtdSysID(value.sysID); } } // Converts the XML fragment to string // `options.pretty` pretty prints the result // `options.indent` indentation for pretty print // `options.offset` how many indentations to add to every line for pretty print // `options.newline` newline sequence for pretty print toString(options) { return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options)); } }; // DOM level 1 Object.defineProperty(XMLDTDNotation.prototype, 'publicId', { get: function() { return this.pubID; } }); Object.defineProperty(XMLDTDNotation.prototype, 'systemId', { get: function() { return this.sysID; } }); return XMLDTDNotation; }).call(this); }).call(this);