You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.6 KiB
108 lines
2.6 KiB
// 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);
|
|
|