|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.axiondb.util.ObjectBTree
public class ObjectBTree
A B-Tree for Object
s, based on the implementation described in
"Introduction to Algorithms" by Cormen, Leiserson and Rivest (CLR).
Constructor Summary | |
---|---|
protected |
ObjectBTree(org.axiondb.util.BTreeMetaData meta,
java.util.Comparator comp)
Create a new, non-root node. |
protected |
ObjectBTree(org.axiondb.util.BTreeMetaData meta,
java.util.Comparator comp,
int fileId)
Create a non-root node by reading it from disk. |
|
ObjectBTree(java.io.File idxDir,
java.lang.String idxName,
int minimizationFactor,
java.util.Comparator comp)
Create or load a new root node. |
Method Summary | |
---|---|
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(java.lang.Object key,
int value,
boolean setDirty)
|
void |
clearData()
Clear my keys, values, and file ids. |
protected ObjectBTree |
createNode(org.axiondb.util.BTreeMetaData meta,
java.util.Comparator comp)
Create a new node. |
void |
delete(java.lang.Object key,
int rowid)
Optimized: Delete an arbitrary instance of the specified key and the specifiied rowid |
java.lang.Integer |
get(java.lang.Object key)
Find some occurance of the given key. |
org.apache.commons.collections.primitives.IntListIterator |
getAll(java.lang.Object 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 |
protected void |
getAllExcludingNull(IntListIteratorChain chain)
|
org.apache.commons.collections.primitives.IntListIterator |
getAllFrom(java.lang.Object key)
Obtain an iterator over all values greater than or equal to the given key. |
org.apache.commons.collections.primitives.IntListIterator |
getAllTo(java.lang.Object 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 java.lang.Object |
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 java.lang.Object |
getNullKey()
|
protected int |
getValue(int index)
|
protected org.apache.commons.collections.primitives.IntList |
getValues()
|
IntListIteratorChain |
inorderIterator()
|
void |
insert(java.lang.Object 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 ObjectBTree |
loadNode(org.axiondb.util.BTreeMetaData meta,
java.util.Comparator comp,
int fileId)
Read the node with the specified fileId from disk. |
protected void |
read()
Reads in the node. |
void |
replaceId(java.lang.Object 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()
|
protected void |
write()
Writes the node file out. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public ObjectBTree(java.io.File idxDir, java.lang.String idxName, int minimizationFactor, java.util.Comparator comp) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected ObjectBTree(org.axiondb.util.BTreeMetaData meta, java.util.Comparator comp) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected ObjectBTree(org.axiondb.util.BTreeMetaData meta, java.util.Comparator comp, int fileId) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
Method Detail |
---|
public final void clearData()
public final void delete(java.lang.Object key, int rowid) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public final java.lang.Integer get(java.lang.Object key) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public final org.apache.commons.collections.primitives.IntListIterator getAll(java.lang.Object key) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public final org.apache.commons.collections.primitives.IntListIterator getAllExcludingNull() throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public final org.apache.commons.collections.primitives.IntListIterator getAllFrom(java.lang.Object key) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public final org.apache.commons.collections.primitives.IntListIterator getAllTo(java.lang.Object key) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public IntListIteratorChain inorderIterator() throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public final void insert(java.lang.Object key, int value) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
public final void replaceId(java.lang.Object key, int oldRowId, int newRowId) throws java.lang.ClassNotFoundException, java.io.IOException
java.lang.ClassNotFoundException
java.io.IOException
public final void save() throws java.io.IOException, java.lang.ClassNotFoundException
save(File)
java.io.IOException
java.lang.ClassNotFoundException
public 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.Object
public void truncate()
protected final void addKeyValuePair(java.lang.Object key, int value, boolean setDirty)
protected ObjectBTree createNode(org.axiondb.util.BTreeMetaData meta, java.util.Comparator comp) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected void getAllExcludingNull(IntListIteratorChain chain) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected final java.lang.Object getKey(int index)
protected java.lang.Object getNullKey()
protected ObjectBTree loadNode(org.axiondb.util.BTreeMetaData meta, java.util.Comparator comp, int fileId) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected void read() throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected void write() throws java.io.IOException
java.io.IOException
public void save(java.io.File dataDirectory) throws java.io.IOException, java.lang.ClassNotFoundException
write()
s any dirty nodes.
java.io.IOException
java.lang.ClassNotFoundException
public void saveAfterTruncate() throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected 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.IOException
protected 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)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |