102 lines
2.2 KiB
JavaScript
Executable File
102 lines
2.2 KiB
JavaScript
Executable File
/**
|
|
* @license
|
|
* Copyright The Closure Library Authors.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @fileoverview Utility for fast string concatenation.
|
|
*/
|
|
|
|
goog.provide('goog.string.StringBuffer');
|
|
|
|
|
|
|
|
/**
|
|
* Utility class to facilitate string concatenation.
|
|
*
|
|
* @param {*=} opt_a1 Optional first initial item to append.
|
|
* @param {...*} var_args Other initial items to
|
|
* append, e.g., new goog.string.StringBuffer('foo', 'bar').
|
|
* @constructor
|
|
*/
|
|
goog.string.StringBuffer = function(opt_a1, var_args) {
|
|
'use strict';
|
|
if (opt_a1 != null) {
|
|
this.append.apply(this, arguments);
|
|
}
|
|
};
|
|
|
|
|
|
/**
|
|
* Internal buffer for the string to be concatenated.
|
|
* @type {string}
|
|
* @private
|
|
*/
|
|
goog.string.StringBuffer.prototype.buffer_ = '';
|
|
|
|
|
|
/**
|
|
* Sets the contents of the string buffer object, replacing what's currently
|
|
* there.
|
|
*
|
|
* @param {*} s String to set.
|
|
*/
|
|
goog.string.StringBuffer.prototype.set = function(s) {
|
|
'use strict';
|
|
this.buffer_ = '' + s;
|
|
};
|
|
|
|
|
|
/**
|
|
* Appends one or more items to the buffer.
|
|
*
|
|
* Calling this with null, undefined, or empty arguments is an error.
|
|
*
|
|
* @param {*} a1 Required first string.
|
|
* @param {*=} opt_a2 Optional second string.
|
|
* @param {...?} var_args Other items to append,
|
|
* e.g., sb.append('foo', 'bar', 'baz').
|
|
* @return {!goog.string.StringBuffer} This same StringBuffer object.
|
|
* @suppress {duplicate}
|
|
*/
|
|
goog.string.StringBuffer.prototype.append = function(a1, opt_a2, var_args) {
|
|
'use strict';
|
|
// Use a1 directly to avoid arguments instantiation for single-arg case.
|
|
this.buffer_ += String(a1);
|
|
if (opt_a2 != null) { // second argument is undefined (null == undefined)
|
|
for (let i = 1; i < arguments.length; i++) {
|
|
this.buffer_ += arguments[i];
|
|
}
|
|
}
|
|
return this;
|
|
};
|
|
|
|
|
|
/**
|
|
* Clears the internal buffer.
|
|
*/
|
|
goog.string.StringBuffer.prototype.clear = function() {
|
|
'use strict';
|
|
this.buffer_ = '';
|
|
};
|
|
|
|
|
|
/**
|
|
* @return {number} the length of the current contents of the buffer.
|
|
*/
|
|
goog.string.StringBuffer.prototype.getLength = function() {
|
|
'use strict';
|
|
return this.buffer_.length;
|
|
};
|
|
|
|
|
|
/**
|
|
* @return {string} The concatenated string.
|
|
* @override
|
|
*/
|
|
goog.string.StringBuffer.prototype.toString = function() {
|
|
'use strict';
|
|
return this.buffer_;
|
|
};
|