@Override public void append( byte[] vs ) { append( vs, 0, vs.length ); }
@Override public void set( int i, byte[] vs, int from, int to ) { int c = to - from; ensureCapacity( i + c ); System.arraycopy( vs, from, a, i, c ); n = i + c; }
@Override public void insert( int i, byte[] vs ) { insert( i, vs, 0, vs.length ); }
@Override public void insert( int i, byte v ) { prepForInsert( i, 1 ); a[i] = v; }
@Override public void prepend( byte v ) { prepForPrepend( 1 ); a[0] = v; }
@Override public void append( byte v ) { prepForAppend( 1 ); a[n - 1] = v; }
@Override public void prepend( byte[] vs ) { prepend( vs, 0, vs.length ); }
@Override public void ensureCapacity( int minCapacity ) { int capacity = a.length; if ( minCapacity > capacity ) { byte[] aNew = newArray( capacity, minCapacity ); System.arraycopy( a, 0, aNew, 0, n ); this.a = aNew; } }
@Override public void removeIndex( int index ) { removeRange( index, index + 1 ); }
public CSVCompactStringColumnParser( ) { super( ); allStrings = new BytesArray( ); offsets = new IntsArray( ); }
@Override public void insert( int i, byte[] vs, int from, int to ) { int c = to - from; prepForInsert( i, c ); System.arraycopy( vs, from, a, i, c ); }
@Override public void prepend( ByteBuffer vs, int c ) { prepForPrepend( c ); vs.get( a, 0, c ); }
@Override public void append( ByteBuffer vs, int c ) { prepForAppend( c ); vs.get( a, n - c, c ); }
@Override public void prepend( ByteBuffer vs ) { prepend( vs, vs.remaining( ) ); }
/** * Makes room in this array for new values to be appended. * * When this call returns, the values in <code>this.a</code> on <code>[this.n-c,this.n)</code> * are undefined. Writing meaningful values to these indices is up to the * caller. * * @param c The count of new values that will be appended */ public void prepForAppend( int c ) { byte[] a = this.a; int capacity = a.length; int n = this.n; int nNew = n + c; if ( nNew > capacity ) { byte[] aNew = newArray( capacity, nNew ); System.arraycopy( a, 0, aNew, 0, n ); this.a = aNew; } this.n = nNew; }
@Override public void append( ByteBuffer vs ) { append( vs, vs.remaining( ) ); }
@Override public void insert( int i, ByteBuffer vs, int c ) { prepForInsert( i, c ); vs.get( a, i, c ); }
@Override public void prepend( byte[] vs, int from, int to ) { int c = to - from; prepForPrepend( c ); System.arraycopy( vs, from, a, 0, c ); }
@Override public void append( byte[] vs, int from, int to ) { int c = to - from; prepForAppend( c ); System.arraycopy( vs, from, a, n - c, c ); }
@Override public void insert( int i, String s ) { insert( i, s, 0, s.length( ) ); }