public class MutableValueBuffer extends Object implements IRaba
nulls and not supporting search. It is assumed that caller
maintains a dense byte[][] in the sense that all entries in [0:nvalues] are
defined, even if some of entries are null. The implementation is NOT
thread-safe for mutation.| Modifier and Type | Field and Description |
|---|---|
int |
nvalues
The #of entries with valid data.
|
byte[][] |
values
The backing array.
|
| Constructor and Description |
|---|
MutableValueBuffer(int nvalues)
Create a new, empty byte[][] of the specified capacity.
|
MutableValueBuffer(int nvalues,
byte[][] values)
Create a view of a byte[][].
|
MutableValueBuffer(int capacity,
IRaba src)
Builds a mutable value buffer.
|
| Modifier and Type | Method and Description |
|---|---|
int |
add(byte[] key)
Append a byte[] value to the end of the logical byte[][] (optional
operation).
|
int |
add(byte[] key,
int off,
int len)
Append a byte[] value to the end of the logical byte[][] (optional
operation).
|
int |
add(DataInput in,
int len)
Append a byte[] value to the end of the logical byte[][] (optional
operation).
|
protected void |
assertNotFull() |
int |
capacity()
The capacity of the logical byte[][].
|
int |
copy(int index,
OutputStream out)
Copy the value at the specified index onto the output stream.
|
byte[] |
get(int index)
Return the byte[] at the specified index.
|
boolean |
isEmpty()
True iff the logical byte[][] is empty.
|
boolean |
isFull()
True iff the logical byte[][] is full.
|
boolean |
isKeys()
For B+Tree values.
|
boolean |
isNull(int index)
Return
true iff the byte[] at that index is
null. |
boolean |
isReadOnly()
Mutable.
|
Iterator<byte[]> |
iterator()
Iterator visits the byte[] elements in the view order.
|
int |
length(int index)
The length of the byte[] at that index.
|
protected boolean |
rangeCheck(int index) |
int |
search(byte[] searchKey)
Search for the given searchKey in the key buffer (optional
operation).
|
void |
set(int index,
byte[] key)
Set the byte[] value at the specified index (optional operation).
|
int |
size()
The #of entries in the logical byte[][].
|
String |
toString() |
public int nvalues
public final byte[][] values
public MutableValueBuffer(int nvalues)
nvalues - The capacity of the byte[][].public MutableValueBuffer(int nvalues,
byte[][] values)
nvalues - The #of entries in the array with valid data.values - The backing byte[][].public MutableValueBuffer(int capacity,
IRaba src)
capacity - The capacity of the new instance (this is based on the
branching factor for the B+Tree).src - The source data.IllegalArgumentException - if the capacity is LT the IRaba.size() of the
src.IllegalArgumentException - if the source is null.public final boolean isReadOnly()
isReadOnly in interface IRabapublic final boolean isKeys()
public final int size()
IRabapublic final boolean isEmpty()
IRabapublic final boolean isFull()
IRabapublic final int capacity()
IRabaprotected final boolean rangeCheck(int index)
throws IndexOutOfBoundsException
IndexOutOfBoundsExceptionpublic final byte[] get(int index)
IRabaget in interface IRabaindex - The index in [0:IRaba.size()-1].null if a
null value was stored at that index.public final int length(int index)
IRabalength in interface IRabaindex - The index in [0:IRaba.size()-1].public final boolean isNull(int index)
IRabatrue iff the byte[] at that index is
null. If IRaba.isKeys() would return
true then this method MUST return false since
nulls are not permitted for B+Tree keys.isNull in interface IRabaindex - The index in [0:IRaba.size()-1].public final int copy(int index,
OutputStream out)
IRabaByteArrayBuffer so that the same backing
byte[] can be overwritten by each visited key.copy in interface IRabaindex - The index in [0:IRaba.size()-1].public final Iterator<byte[]> iterator()
IRabanull, then the iterator will report a null for
that element.protected void assertNotFull()
IllegalStateException - unless there is room to store another value.public void set(int index,
byte[] key)
IRabaset in interface IRabaindex - The index in [0:IRaba.size()-1].key - The byte[] value.public int add(byte[] key)
IRabapublic int add(byte[] key,
int off,
int len)
IRabapublic int add(DataInput in, int len) throws IOException
IRabaadd in interface IRabain - The input stream from which the byte[] will be read.len - The #of bytes to be read.IOExceptionpublic final int search(byte[] searchKey)
IRaba
entryIndex = -entryIndex - 1or just
entryIndex = -entryIndexif you are looking for the first key after the searchKey.
search in interface IRabasearchKey - The search key.(-(insertion point) - 1). The insertion point is
defined as the point at which the key would be inserted. Note
that this guarantees that the return value will be >= 0 if and
only if the key is found.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.