public class IntBTree
extends java.lang.Object
| Modifier | Constructor and Description |
|---|---|
protected |
IntBTree(org.axiondb.util.BTreeMetaData meta)
Create a new, non-root node.
|
protected |
IntBTree(org.axiondb.util.BTreeMetaData meta,
int fileId)
Create a non-root node by reading it from disk.
|
|
IntBTree(java.io.File idxDir,
java.lang.String idxName,
int minimizationFactor)
Create or load a new root node.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addFileId(int fileId)
Add a reference to the given file id.
|
protected void |
addFileId(int index,
int fileid)
Store a reference to the given file id at the specifed index.
|
protected void |
addFileIds(org.apache.commons.collections.primitives.IntList fileIds)
Add the given specified file ids.
|
protected void |
addKeyValuePair(int key,
int value,
boolean setDirty) |
void |
clearData()
Clear my keys, values, and file ids.
|
protected IntBTree |
createNode(org.axiondb.util.BTreeMetaData meta)
Create a new node.
|
boolean |
delete(int key,
int rowid)
Delete an arbitrary instance of the specified key and the specified row
|
java.lang.Integer |
get(int key)
Find some occurance of the given key.
|
org.apache.commons.collections.primitives.IntListIterator |
getAll(int key)
Obtain an iterator over all values associated with the given key.
|
org.apache.commons.collections.primitives.IntListIterator |
getAllExcludingNull()
Obtain an iterator over all values excluding null key values
|
org.apache.commons.collections.primitives.IntListIterator |
getAllFrom(int key)
Obtain an iterator over all values greater than or equal to the given key.
|
org.apache.commons.collections.primitives.IntListIterator |
getAllTo(int key)
Obtain an iterator over all values strictly less than the given key.
|
protected org.axiondb.util.BTreeMetaData |
getBTreeMetaData() |
protected org.apache.commons.collections.primitives.IntList |
getChildIds() |
protected int |
getFileId() |
protected int |
getFileIdForIndex(int index)
Get the file id for the specified index.
|
protected int |
getKey(int index)
Obtain the key stored at the specified index.
|
protected int |
getKeyCapacity()
Return the maximum number of keys I can contain (2*
minimizationFactor-1). |
protected int |
getMinimizationFactor() |
protected int |
getValue(int index) |
protected org.apache.commons.collections.primitives.IntList |
getValues() |
IntListIteratorChain |
inorderIterator() |
void |
insert(int key,
int value)
Insert the given key/value pair.
|
protected boolean |
isFull() |
protected boolean |
isLeaf()
Returns
true iff I don't contain any child nodes. |
protected boolean |
isRoot()
Returns
true iff I am the root node. |
protected IntBTree |
loadNode(org.axiondb.util.BTreeMetaData meta,
int fileId)
Read the node with the specified fileId from disk.
|
protected void |
read()
Reads in the node.
|
void |
replaceId(int key,
int oldRowId,
int newRowId)
Replace any occurance of oldRowId associated with the given key with newRowId.
|
void |
save()
Deprecated.
See
save(File) |
void |
save(java.io.File dataDirectory)
Saves the tree.
|
void |
saveAfterTruncate() |
protected void |
saveCounterIfRoot() |
protected void |
setChildIds(org.apache.commons.collections.primitives.IntList childIds) |
protected void |
setFileId(int fileId) |
protected void |
setValue(int index,
int val) |
protected void |
setValues(org.apache.commons.collections.primitives.IntList vals) |
int |
size()
Returns the number of keys I currently contain.
|
protected java.lang.String |
space(int n)
Return a String comprised of 2*n spaces.
|
java.lang.String |
toString()
Obtain a String representation of this node, suitable for debugging.
|
void |
truncate() |
org.apache.commons.collections.primitives.IntListIterator |
valueIterator() |
org.apache.commons.collections.primitives.IntListIterator |
valueIteratorGreaterThan(int fromkey) |
org.apache.commons.collections.primitives.IntListIterator |
valueIteratorGreaterThanOrEqualTo(int fromkey) |
protected void |
write()
Writes the node file out.
|
public IntBTree(java.io.File idxDir,
java.lang.String idxName,
int minimizationFactor)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionprotected IntBTree(org.axiondb.util.BTreeMetaData meta)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionprotected IntBTree(org.axiondb.util.BTreeMetaData meta,
int fileId)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final void clearData()
public final boolean delete(int key,
int rowid)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final java.lang.Integer get(int key)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final org.apache.commons.collections.primitives.IntListIterator getAll(int key)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final org.apache.commons.collections.primitives.IntListIterator getAllExcludingNull()
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final org.apache.commons.collections.primitives.IntListIterator getAllFrom(int key)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final org.apache.commons.collections.primitives.IntListIterator getAllTo(int key)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic IntListIteratorChain inorderIterator() throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final void insert(int key,
int value)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final void replaceId(int key,
int oldRowId,
int newRowId)
throws java.lang.ClassNotFoundException,
java.io.IOException
java.lang.ClassNotFoundExceptionjava.io.IOExceptionpublic final void save()
throws java.io.IOException,
java.lang.ClassNotFoundException
save(File)java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic final int size()
minimizationFactor-1 and at most
2*minimizationFactor-1 for all nodes except the
root (which may have fewer than minimizationFactor
-1 keys).public final java.lang.String toString()
toString in class java.lang.Objectpublic void truncate()
org.axiondb.util.BaseBTree#reset()public org.apache.commons.collections.primitives.IntListIterator valueIterator()
throws java.io.IOException
java.io.IOExceptionpublic org.apache.commons.collections.primitives.IntListIterator valueIteratorGreaterThan(int fromkey)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic org.apache.commons.collections.primitives.IntListIterator valueIteratorGreaterThanOrEqualTo(int fromkey)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionprotected final void addKeyValuePair(int key,
int value,
boolean setDirty)
protected IntBTree createNode(org.axiondb.util.BTreeMetaData meta) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionprotected final int getKey(int index)
protected IntBTree loadNode(org.axiondb.util.BTreeMetaData meta, int fileId) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionprotected void read()
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionprotected void write()
throws java.io.IOException
java.io.IOExceptionpublic void save(java.io.File dataDirectory)
throws java.io.IOException,
java.lang.ClassNotFoundException
write()s any dirty nodes.java.io.IOExceptionjava.lang.ClassNotFoundExceptionpublic void saveAfterTruncate()
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOExceptionjava.lang.ClassNotFoundExceptionprotected final void addFileId(int fileId)
protected final void addFileId(int index,
int fileid)
protected final void addFileIds(org.apache.commons.collections.primitives.IntList fileIds)
protected final org.axiondb.util.BTreeMetaData getBTreeMetaData()
protected final org.apache.commons.collections.primitives.IntList getChildIds()
protected final int getFileId()
protected final int getFileIdForIndex(int index)
protected final int getKeyCapacity()
minimizationFactor-1).protected final int getMinimizationFactor()
protected final int getValue(int index)
protected final org.apache.commons.collections.primitives.IntList getValues()
protected final boolean isFull()
protected final boolean isLeaf()
true iff I don't contain any child nodes.protected final boolean isRoot()
true iff I am the root node.protected final void saveCounterIfRoot()
throws java.io.IOException
java.io.IOExceptionprotected final void setChildIds(org.apache.commons.collections.primitives.IntList childIds)
protected final void setFileId(int fileId)
protected final void setValue(int index,
int val)
protected final void setValues(org.apache.commons.collections.primitives.IntList vals)
protected final java.lang.String space(int n)