package com.thomasdh.roosterpgplus.Helpers.Apache; class CharArrayBuffer { private char[] buffer; private int len; public CharArrayBuffer(int capacity) { if (capacity < 0) { throw new IllegalArgumentException("Buffer capacity may not be negative"); } buffer = new char[capacity]; } private void expand(int newlen) { char newbuffer[] = new char[Math.max(buffer.length << 1, newlen)]; System.arraycopy(buffer, 0, newbuffer, 0, len); buffer = newbuffer; } public void append(String str) { if (str == null) { str = "null"; } int strlen = str.length(); int newlen = len + strlen; if (newlen > buffer.length) { expand(newlen); } str.getChars(0, strlen, buffer, len); len = newlen; } public void clear() { len = 0; } public int length() { return len; } public void ensureCapacity(int required) { int available = buffer.length - len; if (required > available) { expand(len + required); } } public void setLength(int len) { if (len < 0 || len > buffer.length) { throw new IndexOutOfBoundsException(); } this.len = len; } public String toString() { return new String(buffer, 0, len); } }