Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktab
Class MkTabTreeNode<O extends DatabaseObject,D extends Distance<D>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.logging.AbstractLoggable
      extended by de.lmu.ifi.dbs.elki.persistent.AbstractPage<N>
          extended by de.lmu.ifi.dbs.elki.index.tree.AbstractNode<N,E>
              extended by de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeNode<O,D,MkTabTreeNode<O,D>,MkTabEntry<D>>
                  extended by de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.mktab.MkTabTreeNode<O,D>
All Implemented Interfaces:
MetricalNode<MkTabTreeNode<O,D>,MkTabEntry<D>>, Node<MkTabTreeNode<O,D>,MkTabEntry<D>>, Loggable, Page<MkTabTreeNode<O,D>>, Externalizable, Serializable

 class MkTabTreeNode<O extends DatabaseObject,D extends Distance<D>>
extends AbstractMTreeNode<O,D,MkTabTreeNode<O,D>,MkTabEntry<D>>

Represents a node in a MkMax-Tree.

Author:
Elke Achtert

Field Summary
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug
 
Constructor Summary
MkTabTreeNode()
          Empty constructor for Externalizable interface.
MkTabTreeNode(PageFile<MkTabTreeNode<O,D>> file, int capacity, boolean isLeaf)
          Creates a MkTabTreeNode object.
 
Method Summary
 void adjustEntry(MkTabEntry<D> entry, Integer routingObjectID, D parentDistance, AbstractMTree<O,D,MkTabTreeNode<O,D>,MkTabEntry<D>> mTree)
          Adjusts the parameters of the entry representing this node.
protected  MkTabTreeNode<O,D> createNewDirectoryNode(int capacity)
          Creates a new directory node with the specified capacity.
protected  MkTabTreeNode<O,D> createNewLeafNode(int capacity)
          Creates a new leaf node with the specified capacity.
protected  List<D> kNNDistances(DistanceFunction<O,D> distanceFunction)
          Determines and returns the knn distance of this node as the maximum knn distance of all entries.
protected  void test(MkTabEntry<D> parentEntry, MkTabTreeNode<O,D> parent, int index, AbstractMTree<O,D,MkTabTreeNode<O,D>,MkTabEntry<D>> mTree)
          Tests, if the parameters of the entry representing this node, are correctly set.
 
Methods inherited from class de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTreeNode
coveringRadius, splitEntries, test
 
Methods inherited from class de.lmu.ifi.dbs.elki.index.tree.AbstractNode
addDirectoryEntry, addLeafEntry, children, deleteAllEntries, deleteEntry, equals, getCapacity, getEntries, getEntry, getNumEntries, increaseEntries, isLeaf, readExternal, toString, writeExternal
 
Methods inherited from class de.lmu.ifi.dbs.elki.persistent.AbstractPage
getFile, getID, hashCode, isDirty, setDirty, setFile, setID
 
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debugFine, debugFiner, debugFinest, exception, message, progress, progress, progress, verbose, verbose, warning
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.lmu.ifi.dbs.elki.index.tree.Node
addDirectoryEntry, addLeafEntry, children, getEntry, getNumEntries, isLeaf
 
Methods inherited from interface de.lmu.ifi.dbs.elki.persistent.Page
getID, isDirty, setDirty, setFile, setID
 
Methods inherited from interface java.io.Externalizable
readExternal, writeExternal
 

Constructor Detail

MkTabTreeNode

public MkTabTreeNode()
Empty constructor for Externalizable interface.


MkTabTreeNode

public MkTabTreeNode(PageFile<MkTabTreeNode<O,D>> file,
                     int capacity,
                     boolean isLeaf)
Creates a MkTabTreeNode object.

Parameters:
file - the file storing the MkTab-Tree
capacity - the capacity (maximum number of entries plus 1 for overflow) of this node
isLeaf - indicates wether this node is a leaf node
Method Detail

createNewLeafNode

protected MkTabTreeNode<O,D> createNewLeafNode(int capacity)
Creates a new leaf node with the specified capacity.

Specified by:
createNewLeafNode in class AbstractNode<MkTabTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkTabEntry<D extends Distance<D>>>
Parameters:
capacity - the capacity of the new node
Returns:
a new leaf node

createNewDirectoryNode

protected MkTabTreeNode<O,D> createNewDirectoryNode(int capacity)
Creates a new directory node with the specified capacity.

Specified by:
createNewDirectoryNode in class AbstractNode<MkTabTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkTabEntry<D extends Distance<D>>>
Parameters:
capacity - the capacity of the new node
Returns:
a new directory node

kNNDistances

protected List<D> kNNDistances(DistanceFunction<O,D> distanceFunction)
Determines and returns the knn distance of this node as the maximum knn distance of all entries.

Parameters:
distanceFunction - the distance function
Returns:
the knn distance of this node

adjustEntry

public void adjustEntry(MkTabEntry<D> entry,
                        Integer routingObjectID,
                        D parentDistance,
                        AbstractMTree<O,D,MkTabTreeNode<O,D>,MkTabEntry<D>> mTree)
Description copied from class: AbstractMTreeNode
Adjusts the parameters of the entry representing this node.

Overrides:
adjustEntry in class AbstractMTreeNode<O extends DatabaseObject,D extends Distance<D>,MkTabTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkTabEntry<D extends Distance<D>>>
Parameters:
entry - the entry representing this node
routingObjectID - the id of the (new) routing object of this node
parentDistance - the distance from the routing object of this node to the routing object of the parent node
mTree - the M-Tree object holding this node
See Also:
AbstractMTreeNode.adjustEntry(de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.MTreeEntry,Integer,Distance,de.lmu.ifi.dbs.elki.index.tree.metrical.mtreevariants.AbstractMTree)

test

protected void test(MkTabEntry<D> parentEntry,
                    MkTabTreeNode<O,D> parent,
                    int index,
                    AbstractMTree<O,D,MkTabTreeNode<O,D>,MkTabEntry<D>> mTree)
Tests, if the parameters of the entry representing this node, are correctly set. Subclasses may need to overwrite this method.

Overrides:
test in class AbstractMTreeNode<O extends DatabaseObject,D extends Distance<D>,MkTabTreeNode<O extends DatabaseObject,D extends Distance<D>>,MkTabEntry<D extends Distance<D>>>
Parameters:
parent - the parent holding the entry representing this node
index - the index of the entry in the parents child arry
mTree - the underlying M-Tree
parentEntry - the entry representing the parent

Release 0.1 (2008-07-10_1838)