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 Entry[] |
entries
The entries (children) of this node.
|
protected boolean |
isLeaf
Indicates whether this node is a leaf node.
|
protected int |
numEntries
The number of entries in this node.
|
Constructor and Description |
---|
AbstractNode()
Empty constructor for Externalizable interface.
|
AbstractNode(int capacity,
boolean isLeaf)
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.
|
java.util.Iterator<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.
|
int |
getCapacity()
Returns the capacity of this node (i.e. the length of the entries arrays).
|
java.util.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(java.io.ObjectInput in)
Reads the id of this node, the numEntries and the entries array from the
specified stream.
|
void |
removeMask(long[] mask)
Remove entries according to the given mask.
|
void |
splitByMask(AbstractNode<E> newNode,
long[] assignment)
Splits the entries of this node into a new node using the given assignments
|
void |
splitTo(AbstractNode<E> newNode,
java.util.List<E> sorting,
int splitPoint)
Redistribute entries according to the given sorting.
|
void |
splitTo(AbstractNode<E> newNode,
java.util.List<E> assignmentsToFirst,
java.util.List<E> assignmentsToSecond)
Splits the entries of this node into a new node using the given assignments
|
java.lang.String |
toString()
Returns a string representation of this node.
|
void |
writeExternal(java.io.ObjectOutput out)
Calls the super method and writes the id of this node, the numEntries and
the entries array to the specified stream.
|
equals, getPageID, hashCode, isDirty, setDirty, setPageID
protected int numEntries
protected Entry[] entries
protected boolean isLeaf
public AbstractNode()
public AbstractNode(int capacity, boolean isLeaf)
capacity
- the capacity (maximum number of entries plus 1 for
overflow) of this nodeisLeaf
- indicates whether this node is a leaf nodepublic final java.util.Iterator<IndexTreePath<E>> children(IndexTreePath<E> parentPath)
Node
public final int getNumEntries()
Node
getNumEntries
in interface Node<E extends Entry>
public final boolean isLeaf()
Node
public final E getEntry(int index)
Node
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
writeExternal
in class AbstractExternalizablePage
out
- the stream to write the object tojava.io.IOException
- Includes any I/O exceptions that may occurpublic void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
readExternal
in interface java.io.Externalizable
readExternal
in class AbstractExternalizablePage
in
- the stream to read data from in order to restore the objectjava.io.IOException
- if I/O errors occurjava.lang.ClassNotFoundException
- If the class for an object being restored
cannot be found.public java.lang.String toString()
toString
in class AbstractExternalizablePage
public final int addLeafEntry(E entry)
addLeafEntry
in interface Node<E extends Entry>
entry
- the leaf entry to be addedjava.lang.UnsupportedOperationException
- 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 addedjava.lang.UnsupportedOperationException
- 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 java.util.List<E> getEntries()
private int addEntry(E entry)
entry
- the entry to be addedpublic void removeMask(long[] mask)
mask
- Mask to removepublic final void splitTo(AbstractNode<E> newNode, java.util.List<E> sorting, int splitPoint)
newNode
- Node to split tosorting
- Sorting to usesplitPoint
- Split pointpublic final void splitTo(AbstractNode<E> newNode, java.util.List<E> assignmentsToFirst, java.util.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, long[] assignment)
newNode
- Node to split toassignment
- Assignment maskCopyright © 2019 ELKI Development Team. License information.