public ListBuilder<T> append(T t1, T t2, T t3, T t4, T t5, T... ta) { checkState(); int len = ta.length, oldSz = size; size += (len + 5); ensureCapacity(size); Object[] data = buf; System.arraycopy(ta, 0, data, oldSz + 5, len); data[oldSz + 4] = t5; data[oldSz + 3] = t4; data[oldSz + 2] = t3; data[oldSz + 1] = t2; data[oldSz] = t1; return this; }
public ListBuilder<T> append(T t1, T t2) { checkState(); size += 2; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t2; data[sz - 2] = t1; return this; }
public ListBuilder<T> append(T t1, T t2, T t3, T t4) { checkState(); size += 4; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t4; data[sz - 2] = t3; data[sz - 3] = t2; data[sz - 4] = t1; return this; }
public ListBuilder<T> append(T t1, T t2, T t3) { checkState(); size += 3; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t3; data[sz - 2] = t2; data[sz - 3] = t1; return this; }
@Override public boolean add(T t) { checkState(); int sz = size++; ensureCapacity(sz + 1); buf[sz] = t; return true; }
public ListBuilder<T> append(Object[] ta) { checkState(); int len = ta.length, oldSz = size; size += len; ensureCapacity(size); Object[] data = buf; System.arraycopy(ta, 0, data, oldSz, len); return this; }
public ListBuilder<T> append(T t1, T t2, T t3) { checkState(); size += 3; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t3; data[sz - 2] = t2; data[sz - 3] = t1; return this; }
public ListBuilder<T> append(T t1, T t2, T t3, T t4) { checkState(); size += 4; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t4; data[sz - 2] = t3; data[sz - 3] = t2; data[sz - 4] = t1; return this; }
public ListBuilder<T> append(Collection<? extends T> c1, Collection<? extends T> c2) { checkState(); int l1 = c1.size(), l2 = c2.size(), oldSz = size; size += l1 + l2; int sz = size; ensureCapacity(sz); Object[] data = buf; Object[] newData = c1.toArray(); System.arraycopy(newData, 0, data, oldSz, l1); newData = c2.toArray(); System.arraycopy(newData, 0, data, oldSz += l1, l2); return this; }
@Override public boolean add(T t) { checkState(); int sz = size++; ensureCapacity(sz + 1); buf[sz] = t; return true; }
public ListBuilder<T> append(Object[] ta) { checkState(); int len = ta.length, oldSz = size; size += len; ensureCapacity(size); Object[] data = buf; System.arraycopy(ta, 0, data, oldSz, len); return this; }
public ListBuilder<T> append(Object[] ta1, Object[] ta2) { checkState(); int l1 = ta1.length, l2 = ta2.length, oldSz = size; size += l1 + l2; ensureCapacity(size); Object[] data = buf; System.arraycopy(ta1, 0, data, oldSz, l1); System.arraycopy(ta2, 0, data, oldSz + l1, l2); return this; }
public ListBuilder<T> append(Object[] ta1, Object[] ta2) { checkState(); int l1 = ta1.length, l2 = ta2.length, oldSz = size; size += l1 + l2; ensureCapacity(size); Object[] data = buf; System.arraycopy(ta1, 0, data, oldSz, l1); System.arraycopy(ta2, 0, data, oldSz + l1, l2); return this; }
public ListBuilder<T> append(Collection<? extends T> c1, Collection<? extends T> c2) { checkState(); int l1 = c1.size(), l2 = c2.size(), oldSz = size; size += l1 + l2; int sz = size; ensureCapacity(sz); Object[] data = buf; Object[] newData = c1.toArray(); System.arraycopy(newData, 0, data, oldSz, l1); newData = c2.toArray(); System.arraycopy(newData, 0, data, oldSz += l1, l2); return this; }
public ListBuilder<T> append(T t1, T t2) { checkState(); size += 2; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t2; data[sz - 2] = t1; return this; }
public ListBuilder<T> append(T t1, T t2, T t3, T t4, T t5) { checkState(); size += 5; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t5; data[sz - 2] = t4; data[sz - 3] = t3; data[sz - 4] = t2; data[sz - 5] = t1; return this; }
public ListBuilder<T> append(T t1, T t2, T t3, T t4, T t5) { checkState(); size += 5; int sz = size; ensureCapacity(sz); Object[] data = buf; data[sz - 1] = t5; data[sz - 2] = t4; data[sz - 3] = t3; data[sz - 4] = t2; data[sz - 5] = t1; return this; }
public ListBuilder<T> append(T t1, T t2, T t3, T t4, T t5, T... ta) { checkState(); int len = ta.length, oldSz = size; size += (len + 5); ensureCapacity(size); Object[] data = buf; System.arraycopy(ta, 0, data, oldSz + 5, len); data[oldSz + 4] = t5; data[oldSz + 3] = t4; data[oldSz + 2] = t3; data[oldSz + 1] = t2; data[oldSz] = t1; return this; }
@Override public void add(int index, T element) { if (index > size) { throw new IndexOutOfBoundsException(); } checkState(); int sz = size++; ensureCapacity(sz + 1); if (index == sz) { buf[sz] = element; } else { System.arraycopy(buf, index, buf, index + 1, sz - index); buf[index] = element; } }
@Override public void add(int index, T element) { if (index > size) { throw new IndexOutOfBoundsException(); } checkState(); int sz = size++; ensureCapacity(sz + 1); if (index == sz) { buf[sz] = element; } else { System.arraycopy(buf, index, buf, index + 1, sz - index); buf[index] = element; } }