package com.revolsys.io;
public class StringWriter extends java.io.Writer implements CharSequence {
private final StringBuilder buffer;
public StringWriter() {
this.buffer = new StringBuilder();
this.lock = this.buffer;
}
public StringWriter(final int capacity) {
if (capacity <= 0) {
throw new IllegalArgumentException("Buffer size must be > 0 ");
}
this.buffer = new StringBuilder(capacity);
this.lock = this.buffer;
}
@Override
public char charAt(final int index) {
return this.buffer.charAt(index);
}
@Override
public void close() {
}
@Override
public void flush() {
}
public StringBuilder getBuffer() {
return this.buffer;
}
@Override
public int length() {
return this.buffer.length();
}
@Override
public CharSequence subSequence(final int start, final int end) {
return this.buffer.subSequence(start, end);
}
@Override
public String toString() {
return this.buffer.toString();
}
@Override
public void write(final char data[], final int offset, final int length) {
if (length == 0) {
return;
} else {
if (offset < 0 || length < 0) {
throw new IndexOutOfBoundsException();
} else {
this.buffer.append(data, offset, length);
}
}
}
@Override
public void write(final int c) {
this.buffer.append((char)c);
}
@Override
public void write(final String string) {
this.buffer.append(string);
}
@Override
public void write(final String string, final int offset, final int length) {
this.buffer.append(string, offset, offset + length);
}
}