All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.firefly.utils.lang.Utf8StringBuffer Maven / Gradle / Ivy

There is a newer version: 5.0.2
Show newest version
package com.firefly.utils.lang;

/**
 * UTF-8 StringBuffer.
 *
 * This class wraps a standard {@link java.lang.StringBuffer} and provides
 * methods to append UTF-8 encoded bytes, that are converted into characters.
 *
 * This class is stateful and up to 4 calls to {@link #append(byte)} may be
 * needed before state a character is appended to the string buffer.
 *
 * The UTF-8 decoding is done by this class and no additional buffers or Readers
 * are used. The UTF-8 code was inspired by
 * http://bjoern.hoehrmann.de/utf-8/decoder/dfa/
 */
public class Utf8StringBuffer extends Utf8Appendable {
	final StringBuffer buffer;

	public Utf8StringBuffer() {
		super(new StringBuffer());
		buffer = (StringBuffer) appendable;
	}

	public Utf8StringBuffer(int capacity) {
		super(new StringBuffer(capacity));
		buffer = (StringBuffer) appendable;
	}

	@Override
	public int length() {
		return buffer.length();
	}

	@Override
	public void reset() {
		super.reset();
		buffer.setLength(0);
	}

	public StringBuffer getStringBuffer() {
		checkState();
		return buffer;
	}

	@Override
	public String toString() {
		checkState();
		return buffer.toString();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy