
N - the type of Node used in the indexE - the type of Entry used in the indexpublic abstract class IndexTree<N extends Node<E>,E extends Entry> extends Object
| Modifier and Type | Field and Description | 
|---|---|
| protected int | dirCapacityThe capacity of a directory node (= 1 + maximum number of entries in a
 directory node). | 
| protected int | dirMinimumThe minimum number of entries in a directory node. | 
| private PageFile<N> | fileThe file storing the entries of this index. | 
| protected boolean | initializedTrue if this index is already initialized. | 
| protected int | leafCapacityThe capacity of a leaf node (= 1 + maximum number of entries in a leaf
 node). | 
| protected int | leafMinimumThe minimum number of entries in a leaf node. | 
| private E | rootEntryThe entry representing the root node. | 
| Constructor and Description | 
|---|
| IndexTree(PageFile<N> pagefile)Constructor. | 
| Modifier and Type | Method and Description | 
|---|---|
| protected abstract void | createEmptyRoot(E exampleLeaf)Creates an empty root node and writes it to file. | 
| protected TreeIndexHeader | createHeader()Creates a header for this index structure which is an instance of
  TreeIndexHeader. | 
| protected abstract N | createNewDirectoryNode()Creates a new directory node with the specified capacity. | 
| protected abstract N | createNewLeafNode()Creates a new leaf node with the specified capacity. | 
| protected abstract E | createRootEntry()Creates an entry representing the root node. | 
| protected void | deleteNode(N node)Delete a node from the backing storage. | 
| protected PageFile<N> | getFile()Deprecated.  | 
| protected abstract Logging | getLogger()Get the (STATIC) logger for this class. | 
| N | getNode(E entry)Returns the node that is represented by the specified entry. | 
| N | getNode(int nodeID)Returns the node with the specified id. | 
| PageFileStatistics | getPageFileStatistics()Get the index file page access statistics. | 
| protected int | getPageID(Entry entry)Convert a directory entry to its page id. | 
| protected int | getPageSize()Get the page size of the backing storage. | 
| N | getRoot()Reads the root node of this index from the file. | 
| E | getRootEntry()Returns the entry representing the root if this index. | 
| int | getRootID()Page ID of the root entry. | 
| IndexTreePath<E> | getRootPath()Returns the path to the root of this tree. | 
| void | initialize()Initialize the tree if the page file already existed. | 
| protected void | initialize(E exampleLeaf)Initializes the index. | 
| protected abstract void | initializeCapacities(E exampleLeaf)Determines the maximum and minimum number of entries in a node. | 
| void | initializeFromFile(TreeIndexHeader header,
                  PageFile<N> file)Initializes this index from an existing persistent file. | 
| protected boolean | isRoot(N page)Test if a given ID is the root. | 
| protected void | postDelete(E entry)Performs necessary operations after deleting the specified entry. | 
| protected void | preInsert(E entry)Performs necessary operations before inserting the specified entry. | 
| protected void | writeNode(N node)Write a node to the backing storage. | 
protected boolean initialized
protected int dirCapacity
protected int leafCapacity
protected int dirMinimum
protected int leafMinimum
public void initialize()
protected abstract Logging getLogger()
public final E getRootEntry()
public final int getRootID()
public N getRoot()
protected boolean isRoot(N page)
page - Page to testprotected int getPageID(Entry entry)
entry - Entrypublic N getNode(int nodeID)
nodeID - the page id of the node to be returnedpublic final N getNode(E entry)
entry - the entry representing the node to be returnedprotected void writeNode(N node)
node - Node to writeprotected void deleteNode(N node)
node - Node to deleteprotected TreeIndexHeader createHeader()
TreeIndexHeader. Subclasses may need to overwrite this method if
 they need a more specialized header.public void initializeFromFile(TreeIndexHeader header, PageFile<N> file)
header - File headerfile - Page fileprotected final void initialize(E exampleLeaf)
exampleLeaf - an object that will be stored in the indexpublic final IndexTreePath<E> getRootPath()
protected abstract void initializeCapacities(E exampleLeaf)
exampleLeaf - an object that will be stored in the indexprotected abstract void createEmptyRoot(E exampleLeaf)
exampleLeaf - an object that will be stored in the indexprotected abstract E createRootEntry()
protected abstract N createNewLeafNode()
protected abstract N createNewDirectoryNode()
protected void preInsert(E entry)
entry - the entry to be insertedprotected void postDelete(E entry)
entry - the entry that was removedpublic PageFileStatistics getPageFileStatistics()
protected int getPageSize()
@Deprecated protected PageFile<N> getFile()