57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
function StringBuffer() {
|
|
this._objArray = [];
|
|
this._undoFlag = false;
|
|
};
|
|
|
|
StringBuffer.prototype.toString = function() {
|
|
if(this._objArray.length==0) {
|
|
return '';
|
|
}
|
|
var str = this._objArray.join('');
|
|
if(this._objArray.length > 1) {
|
|
this.clear();
|
|
this.append(str);
|
|
}
|
|
this._undoFlag = false;
|
|
return str;
|
|
};
|
|
|
|
StringBuffer.prototype.append = function(object) {
|
|
this._objArray[this._objArray.length] = object;
|
|
this._undoFlag = true;
|
|
return this;
|
|
};
|
|
|
|
StringBuffer.prototype.clear = function() {
|
|
this._objArray.length = 0;
|
|
this._undoFlag = false;
|
|
};
|
|
|
|
StringBuffer.prototype.undoLastAppend = function() {
|
|
if(this._undoFlag) {
|
|
this._objArray.length = this._objArray.length -1;
|
|
this._undoFlag = false;
|
|
}
|
|
};
|
|
|
|
StringBuffer.prototype.setSize = function(size) {
|
|
if(size==null || size<=0) {
|
|
this.clear();
|
|
return;
|
|
}
|
|
var str = this._objArray.join('');
|
|
if(size < str.length) {
|
|
str = str.substring(0, size);
|
|
this.clear();
|
|
this.append(str);
|
|
} else if(this._objArray.length > 1) {
|
|
this.clear();
|
|
this.append(str);
|
|
}
|
|
this._undoFlag = false;
|
|
};
|
|
|
|
StringBuffer.prototype.getSize = function() {
|
|
var str = this.toString();
|
|
return str.length;
|
|
};
|