
E - the type of Entry used in the indexpublic abstract class AbstractNode<E extends Entry> extends AbstractExternalizablePage implements Node<E>
| Modifier and Type | Field and Description | 
|---|---|
| protected E[] | entriesThe entries (children) of this node. | 
| protected boolean | isLeafIndicates whether this node is a leaf node. | 
| protected int | numEntriesThe number of entries in this node. | 
| Constructor and Description | 
|---|
| AbstractNode()Empty constructor for Externalizable interface. | 
| AbstractNode(int capacity,
            boolean isLeaf,
            Class<? super E> eclass)Creates a new Node with the specified parameters. | 
| Modifier and Type | Method and Description | 
|---|---|
| int | addDirectoryEntry(E entry)Adds a new directory entry to this node's children and returns the index of
 the entry in this node's children array. | 
| private int | addEntry(E entry)Adds the specified entry to the entries array and increases the numEntries
 counter. | 
| int | addLeafEntry(E entry)Adds a new leaf entry to this node's children and returns the index of the
 entry in this node's children array. | 
| Enumeration<IndexTreePath<E>> | children(IndexTreePath<E> parentPath)Returns an enumeration of the children paths of this node. | 
| void | deleteAllEntries()Deletes all entries in this node. | 
| boolean | deleteEntry(int index)Deletes the entry at the specified index and shifts all entries after the
 index to left. | 
| boolean | equals(Object o)Returns  trueifthis == ohas the valuetrueor o is not null and o is of the same class as this
 instance andsuper.equals(o)returnstrueand
 both nodes are of the same type (leaf node or directory node) and have
 contain the same entries,falseotherwise. | 
| int | getCapacity()Returns the capacity of this node (i.e. the length of the entries arrays). | 
| List<E> | getEntries()Deprecated. 
 Using this method means an extra copy - usually at the cost of
             performance. | 
| E | getEntry(int index)Returns the entry at the specified index. | 
| int | getNumEntries()Returns the number of entries of this node. | 
| boolean | isLeaf()Returns true if this node is a leaf node, false otherwise. | 
| void | readExternal(ObjectInput in)Reads the id of this node, the numEntries and the entries array from the
 specified stream. | 
| void | removeMask(BitSet mask)Remove entries according to the given mask. | 
| void | splitByMask(AbstractNode<E> newNode,
           BitSet assignment)Splits the entries of this node into a new node using the given assignments | 
| void | splitTo(AbstractNode<E> newNode,
       List<E> sorting,
       int splitPoint)Redistribute entries according to the given sorting. | 
| void | splitTo(AbstractNode<E> newNode,
       List<E> assignmentsToFirst,
       List<E> assignmentsToSecond)Splits the entries of this node into a new node using the given assignments | 
| String | toString()Returns a string representation of this node. | 
| void | writeExternal(ObjectOutput out)Calls the super method and writes the id of this node, the numEntries and
 the entries array to the specified stream. | 
getPageID, hashCode, isDirty, setDirty, setPageIDprotected int numEntries
protected boolean isLeaf
public AbstractNode()
public AbstractNode(int capacity,
            boolean isLeaf,
            Class<? super E> eclass)
capacity - the capacity (maximum number of entries plus 1 for
        overflow) of this nodeisLeaf - indicates whether this node is a leaf nodeeclass - Entry class, to initialize array storagepublic final Enumeration<IndexTreePath<E>> children(IndexTreePath<E> parentPath)
Nodepublic final int getNumEntries()
NodegetNumEntries in interface Node<E extends Entry>public final boolean isLeaf()
Nodepublic final E getEntry(int index)
Nodepublic void writeExternal(ObjectOutput out) throws IOException
writeExternal in interface ExternalizablewriteExternal in class AbstractExternalizablePageout - the stream to write the object toIOException - Includes any I/O exceptions that may occurpublic void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal in interface ExternalizablereadExternal in class AbstractExternalizablePagein - the stream to read data from in order to restore the objectIOException - if I/O errors occurClassNotFoundException - If the class for an object being restored
         cannot be found.public boolean equals(Object o)
true if this == o has the value
 true or o is not null and o is of the same class as this
 instance and super.equals(o) returns true and
 both nodes are of the same type (leaf node or directory node) and have
 contain the same entries, false otherwise.equals in class AbstractExternalizablePageo - the object to be testedAbstractExternalizablePage.equals(Object)public final String toString()
toString in class AbstractExternalizablePagepublic final int addLeafEntry(E entry)
addLeafEntry in interface Node<E extends Entry>entry - the leaf entry to be addedUnsupportedOperationException - if entry is not a leaf entry or this
         node is not a leaf nodepublic final int addDirectoryEntry(E entry)
addDirectoryEntry in interface Node<E extends Entry>entry - the directory entry to be addedUnsupportedOperationException - if entry is not a directory entry or
         this node is not a directory nodepublic boolean deleteEntry(int index)
index - the index at which the entry is to be deletedpublic final void deleteAllEntries()
public final int getCapacity()
@Deprecated public final List<E> getEntries()
private int addEntry(E entry)
entry - the entry to be addedpublic void removeMask(BitSet mask)
mask - Mask to removepublic final void splitTo(AbstractNode<E> newNode, List<E> sorting, int splitPoint)
newNode - Node to split tosorting - Sorting to usesplitPoint - Split pointpublic final void splitTo(AbstractNode<E> newNode, List<E> assignmentsToFirst, List<E> assignmentsToSecond)
newNode - Node to split toassignmentsToFirst - the assignment to this nodeassignmentsToSecond - the assignment to the new nodepublic final void splitByMask(AbstractNode<E> newNode, BitSet assignment)
newNode - Node to split toassignment - Assignment mask