org.neodatis.btree
Interface IBTreeNode

All Superinterfaces:
java.io.Serializable
All Known Subinterfaces:
IBTreeNodeMultipleValuesPerKey, IBTreeNodeOneValuePerKey
All Known Implementing Classes:
AbstractBTreeNode, BTreeNodeMultipleValuesPerKey, BTreeNodeSingleValuePerKey, InMemoryBTreeNodeMultipleValuesPerKey, InMemoryBTreeNodeSingleValuePerkey, ODBBTreeNodeMultiple, ODBBTreeNodeSingle

public interface IBTreeNode
extends java.io.Serializable

The interface for btree node.

Author:
olivier

Method Summary
 void clear()
           
 void deleteChildAt(int index)
           
 java.lang.Object deleteKeyAndValueAt(int index, boolean shiftChildren)
           
 java.lang.Object deleteKeyForLeafNode(IKeyAndValue keyAndValue)
           
 IBTreeNode extractRightPart()
           
 IBTree getBTree()
           
 IBTreeNode getChildAt(int index, boolean throwExceptionIfNotExist)
           
 java.lang.Object getChildIdAt(int childIndex, boolean throwExceptionIfDoesNotExist)
           
 int getDegree()
           
 java.lang.Object getId()
           
 IKeyAndValue getKeyAndValueAt(int index)
           
 java.lang.Comparable getKeyAt(int index)
           
 IBTreeNode getLastChild()
           
 IKeyAndValue getLastKeyAndValue()
           
 IBTreeNode getLastPositionChild()
           
 int getMaxNbChildren()
           
 IKeyAndValue getMedian()
           
 int getNbChildren()
           
 int getNbKeys()
           
 IBTreeNode getParent()
           
 java.lang.Object getParentId()
           
 int getPositionOfKey(java.lang.Comparable key)
          Returns the position of the key.
 java.lang.Object getValueAsObjectAt(int index)
           
 boolean hasParent()
           
 void incrementNbChildren()
           
 void incrementNbKeys()
           
 void insertKeyAndValue(java.lang.Comparable key, java.lang.Object value)
           
 boolean isFull()
           
 boolean isLeaf()
           
 void mergeWith(IBTreeNode node)
           
 void moveChildFromTo(int sourceIndex, int destinationIndex, boolean throwExceptionIfDoesNotExist)
           
 void removeKeyAndValueAt(int index)
           
 void setBTree(IBTree btree)
           
 void setChildAt(IBTreeNode child, int index)
           
 void setChildAt(IBTreeNode node, int childIndex, int indexDestination, boolean throwExceptionIfDoesNotExist)
           
 void setId(java.lang.Object id)
           
 void setKeyAndValueAt(java.lang.Comparable key, java.lang.Object value, int index)
           
 void setKeyAndValueAt(java.lang.Comparable key, java.lang.Object value, int index, boolean shiftIfAlreadyExist, boolean incrementNbKeys)
           
 void setKeyAndValueAt(IKeyAndValue keyAndValue, int index)
           
 void setKeyAndValueAt(IKeyAndValue keyAndValue, int index, boolean shiftIfAlreadyExist, boolean incrementNbKeys)
           
 void setNbChildren(int nbChildren)
           
 void setNbKeys(int nbKeys)
           
 void setNullChildAt(int childIndex)
           
 void setParent(IBTreeNode node)
           
 

Method Detail

isFull

boolean isFull()

isLeaf

boolean isLeaf()

getKeyAndValueAt

IKeyAndValue getKeyAndValueAt(int index)

getKeyAt

java.lang.Comparable getKeyAt(int index)

getValueAsObjectAt

java.lang.Object getValueAsObjectAt(int index)

getLastKeyAndValue

IKeyAndValue getLastKeyAndValue()

getChildAt

IBTreeNode getChildAt(int index,
                      boolean throwExceptionIfNotExist)

getLastChild

IBTreeNode getLastChild()

getLastPositionChild

IBTreeNode getLastPositionChild()

getParent

IBTreeNode getParent()

getParentId

java.lang.Object getParentId()

setKeyAndValueAt

void setKeyAndValueAt(java.lang.Comparable key,
                      java.lang.Object value,
                      int index)

setKeyAndValueAt

void setKeyAndValueAt(IKeyAndValue keyAndValue,
                      int index)

setKeyAndValueAt

void setKeyAndValueAt(java.lang.Comparable key,
                      java.lang.Object value,
                      int index,
                      boolean shiftIfAlreadyExist,
                      boolean incrementNbKeys)

setKeyAndValueAt

void setKeyAndValueAt(IKeyAndValue keyAndValue,
                      int index,
                      boolean shiftIfAlreadyExist,
                      boolean incrementNbKeys)

extractRightPart

IBTreeNode extractRightPart()

getMedian

IKeyAndValue getMedian()

setChildAt

void setChildAt(IBTreeNode node,
                int childIndex,
                int indexDestination,
                boolean throwExceptionIfDoesNotExist)

setChildAt

void setChildAt(IBTreeNode child,
                int index)

setNullChildAt

void setNullChildAt(int childIndex)

moveChildFromTo

void moveChildFromTo(int sourceIndex,
                     int destinationIndex,
                     boolean throwExceptionIfDoesNotExist)

incrementNbKeys

void incrementNbKeys()

incrementNbChildren

void incrementNbChildren()

getPositionOfKey

int getPositionOfKey(java.lang.Comparable key)
Returns the position of the key. If the key does not exist in node, returns the position where this key should be,multiplied by -1
 or example for node of degree 3 : [1 89 452 789 - ],
  calling getPositionOfKey(89) returns 2 (starts with 1)
  calling getPositionOfKey(99) returns -2 (starts with 1),because the position should be done, but it does not exist so multiply by -1
 his is used to know the child we should descend to!in this case the getChild(2).
 
 

Parameters:
key -
Returns:
The position of the key,as a negative number if key does not exist, warning, the position starts with 1and not 0!

insertKeyAndValue

void insertKeyAndValue(java.lang.Comparable key,
                       java.lang.Object value)

mergeWith

void mergeWith(IBTreeNode node)

removeKeyAndValueAt

void removeKeyAndValueAt(int index)

getNbKeys

int getNbKeys()

setNbKeys

void setNbKeys(int nbKeys)

setNbChildren

void setNbChildren(int nbChildren)

getDegree

int getDegree()

getNbChildren

int getNbChildren()

getMaxNbChildren

int getMaxNbChildren()

setParent

void setParent(IBTreeNode node)

deleteKeyForLeafNode

java.lang.Object deleteKeyForLeafNode(IKeyAndValue keyAndValue)

deleteKeyAndValueAt

java.lang.Object deleteKeyAndValueAt(int index,
                                     boolean shiftChildren)

hasParent

boolean hasParent()

getId

java.lang.Object getId()

setId

void setId(java.lang.Object id)

setBTree

void setBTree(IBTree btree)

getBTree

IBTree getBTree()

clear

void clear()

deleteChildAt

void deleteChildAt(int index)

getChildIdAt

java.lang.Object getChildIdAt(int childIndex,
                              boolean throwExceptionIfDoesNotExist)