public class DefaultCharArrayNodeFactory extends Object implements NodeFactory
NodeFactory
which creates various implementations of Node
objects all of which store incoming
edge characters as a character array inside the node.
Returns an optimal node implementation depending on arguments supplied, which will be one of:
CharArrayNodeDefault
- contains all possible fieldsCharArrayNodeNonLeafNullValue
- does not store a value, returns null
for valueCharArrayNodeNonLeafVoidValue
- does not store a value, returns VoidValue
for valueCharArrayNodeLeafVoidValue
- does not store child edges or a value, returns VoidValue
for valueCharArrayNodeLeafWithValue
- does not store child edges, but does store a valueVoidValue
for a value, this factory will omit actually storing that value
in the tree and will return one of the VoidValue-optimized nodes above which can reduce memory usage.Constructor and Description |
---|
DefaultCharArrayNodeFactory() |
Modifier and Type | Method and Description |
---|---|
Node |
createNode(CharSequence edgeCharacters,
Object value,
List<Node> childNodes,
boolean isRoot)
|
public Node createNode(CharSequence edgeCharacters, Object value, List<Node> childNodes, boolean isRoot)
NodeFactory
Node
object which encapsulates the arguments supplied, optionally returning implementations
of the Node
interface which are memory-optimized for storing only the supplied combination of variables,
potentially further optimized based on variable values.createNode
in interface NodeFactory
edgeCharacters
- Provides edge characters to be stored in the node. This is never null. In the case of
(re-)constructing the root node, this will contain zero characters, otherwise will always contain one or more
charactersvalue
- An arbitrary object to associate with the node. This can be null, but it will not be null if
dealing with a leaf node (when childNodes will be empty)childNodes
- A list of child nodes to store in the node. This will never be null, but may be empty when
building a leaf nodeisRoot
- Indicates if this will be the root node, in which case edge characters will be non-null but empty,
value will be null, and child nodes will be non-null but may be emptyNode
interface which stores the given variablesCopyright © 2020. All rights reserved.