public interface Node extends NodeCharacterProvider, Serializable
CharSequence
object verbatim, or use a particular implementation of
CharSequence
, the only requirement is that they provide a CharSequence
view onto
the character data.
Character data can optionally be stored outside of the tree. CharSequence
s can encode a start and
end offset (or length) as a view onto a larger string (possibly a view onto the original key inserted).
Furthermore end offset could be stored as length, relative to the start offset with variable length encoding
to avoid storing 4 bytes for the length. This option would have consequences for
garbage collection of large string keys however, therefore would mostly suit immutable data sets.
Character data can be compressed. CharSequence
s are free to store character data within the tree but
in a size-reduced encoding such as UTF-8
Modifier and Type | Method and Description |
---|---|
CharSequence |
getIncomingEdge()
Returns all characters of the "edge" encoded in this node, belonging to the connection from a parent node to this
node.
|
Character |
getIncomingEdgeFirstCharacter()
Returns the first character of the "edge" encoded in this node, belonging to the connection from a parent node to
this node.
|
Node |
getOutgoingEdge(Character edgeFirstCharacter)
Returns the child of this node whose edge starts with the given first character.
|
List<Node> |
getOutgoingEdges()
Returns a read-only list of the child nodes to which this node has outgoing edges, i.e.
|
Object |
getValue()
Returns a value object which has been associated with a key and which is stored in this node, or returns
null if no value is stored in this node. |
void |
updateOutgoingEdge(Node childNode)
Updates the child node reference for a given edge (identified by its first character) to point to a different
child node.
|
Character getIncomingEdgeFirstCharacter()
getIncomingEdgeFirstCharacter
in interface NodeCharacterProvider
CharSequence getIncomingEdge()
Object getValue()
null
if no value is stored in this node.null
if no value is stored in this nodeNode getOutgoingEdge(Character edgeFirstCharacter)
updateOutgoingEdge(Node)
.edgeFirstCharacter
- The first character of the edge for which the associated child node is requirednull
if this
node has no such outgoing edgevoid updateOutgoingEdge(Node childNode)
getOutgoingEdge(Character)
.childNode
- The new child node to associated with this edgeList<Node> getOutgoingEdges()
Copyright © 2017. All Rights Reserved.