initial commit
This commit is contained in:
commit
4b60ece582
327 changed files with 28286 additions and 0 deletions
84
libjs/wType/string.js
Normal file
84
libjs/wType/string.js
Normal file
|
@ -0,0 +1,84 @@
|
|||
"use strict";
|
||||
var Object = require("./object");
|
||||
|
||||
var String = Object.inherit({
|
||||
"className": "String",
|
||||
"constructor": function(source) {
|
||||
Object.fn.constructor.call(this);
|
||||
|
||||
this._data = "";
|
||||
this._parseSource(source || "");
|
||||
},
|
||||
"destructor": function () {
|
||||
this.clear();
|
||||
|
||||
Object.fn.destructor.call(this);
|
||||
},
|
||||
"<": function(other) {
|
||||
if (!(other instanceof String)) {
|
||||
throw new Error("Can compare String only with String");
|
||||
}
|
||||
return this._data < other._data;
|
||||
},
|
||||
">": function(other) {
|
||||
if (!(other instanceof String)) {
|
||||
throw new Error("Can compare String only with String");
|
||||
}
|
||||
return this._data > other._data;
|
||||
},
|
||||
"==": function(other) {
|
||||
if (this.getType() !== other.getType()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return this._data === other._data;
|
||||
},
|
||||
"+=": function(str) {
|
||||
this._data += str.toString();
|
||||
},
|
||||
"clear": function() {
|
||||
this._data = "";
|
||||
},
|
||||
"clone": function() {
|
||||
var clone = new String(this._data);
|
||||
|
||||
return clone;
|
||||
},
|
||||
"deserialize": function(ba) {
|
||||
this.clear();
|
||||
var size = ba.pop32();
|
||||
|
||||
for (var i = 0; i < size; ++i) {
|
||||
var cc = ba.pop16();
|
||||
this._data += global.String.fromCharCode(cc);
|
||||
}
|
||||
},
|
||||
"length": function() {
|
||||
return this._data.length;
|
||||
},
|
||||
"serialize": function(ba) {
|
||||
ba.push32(this._data.length);
|
||||
|
||||
for (var i = 0; i < this._data.length; ++i) {
|
||||
var code = this._data.charCodeAt(i);
|
||||
ba.push16(code);
|
||||
}
|
||||
},
|
||||
"size": function() {
|
||||
return this._data.length * 2 + 4;
|
||||
},
|
||||
"toString": function() {
|
||||
return this._data;
|
||||
},
|
||||
"valueOf": function() {
|
||||
return this.toString();
|
||||
},
|
||||
"_parseSource": function(source) {
|
||||
if (typeof source !== "string") {
|
||||
throw new Error("Wrong argument to construct String");
|
||||
}
|
||||
this._data = source;
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = String;
|
Loading…
Add table
Add a link
Reference in a new issue