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;
};