| // Generated by CoffeeScript 1.12.7 | |
| (function() { | |
|   var NodeType, XMLAttribute, XMLNode; | |
| 
 | |
|   NodeType = require('./NodeType'); | |
| 
 | |
|   XMLNode = require('./XMLNode'); | |
| 
 | |
|   module.exports = XMLAttribute = (function() { | |
|     function XMLAttribute(parent, name, value) { | |
|       this.parent = parent; | |
|       if (this.parent) { | |
|         this.options = this.parent.options; | |
|         this.stringify = this.parent.stringify; | |
|       } | |
|       if (name == null) { | |
|         throw new Error("Missing attribute name. " + this.debugInfo(name)); | |
|       } | |
|       this.name = this.stringify.name(name); | |
|       this.value = this.stringify.attValue(value); | |
|       this.type = NodeType.Attribute; | |
|       this.isId = false; | |
|       this.schemaTypeInfo = null; | |
|     } | |
| 
 | |
|     Object.defineProperty(XMLAttribute.prototype, 'nodeType', { | |
|       get: function() { | |
|         return this.type; | |
|       } | |
|     }); | |
| 
 | |
|     Object.defineProperty(XMLAttribute.prototype, 'ownerElement', { | |
|       get: function() { | |
|         return this.parent; | |
|       } | |
|     }); | |
| 
 | |
|     Object.defineProperty(XMLAttribute.prototype, 'textContent', { | |
|       get: function() { | |
|         return this.value; | |
|       }, | |
|       set: function(value) { | |
|         return this.value = value || ''; | |
|       } | |
|     }); | |
| 
 | |
|     Object.defineProperty(XMLAttribute.prototype, 'namespaceURI', { | |
|       get: function() { | |
|         return ''; | |
|       } | |
|     }); | |
| 
 | |
|     Object.defineProperty(XMLAttribute.prototype, 'prefix', { | |
|       get: function() { | |
|         return ''; | |
|       } | |
|     }); | |
| 
 | |
|     Object.defineProperty(XMLAttribute.prototype, 'localName', { | |
|       get: function() { | |
|         return this.name; | |
|       } | |
|     }); | |
| 
 | |
|     Object.defineProperty(XMLAttribute.prototype, 'specified', { | |
|       get: function() { | |
|         return true; | |
|       } | |
|     }); | |
| 
 | |
|     XMLAttribute.prototype.clone = function() { | |
|       return Object.create(this); | |
|     }; | |
| 
 | |
|     XMLAttribute.prototype.toString = function(options) { | |
|       return this.options.writer.attribute(this, this.options.writer.filterOptions(options)); | |
|     }; | |
| 
 | |
|     XMLAttribute.prototype.debugInfo = function(name) { | |
|       name = name || this.name; | |
|       if (name == null) { | |
|         return "parent: <" + this.parent.name + ">"; | |
|       } else { | |
|         return "attribute: {" + name + "}, parent: <" + this.parent.name + ">"; | |
|       } | |
|     }; | |
| 
 | |
|     XMLAttribute.prototype.isEqualNode = function(node) { | |
|       if (node.namespaceURI !== this.namespaceURI) { | |
|         return false; | |
|       } | |
|       if (node.prefix !== this.prefix) { | |
|         return false; | |
|       } | |
|       if (node.localName !== this.localName) { | |
|         return false; | |
|       } | |
|       if (node.value !== this.value) { | |
|         return false; | |
|       } | |
|       return true; | |
|     }; | |
| 
 | |
|     return XMLAttribute; | |
| 
 | |
|   })(); | |
| 
 | |
| }).call(this);
 |