Class DefaultCharArrayNodeFactory

java.lang.Object
com.googlecode.concurrenttrees.radix.node.concrete.DefaultCharArrayNodeFactory
All Implemented Interfaces:
NodeFactory, Serializable

public class DefaultCharArrayNodeFactory extends Object implements NodeFactory
A 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:

When the application supplies VoidValue 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.

See Also:
  • Constructor Details

    • DefaultCharArrayNodeFactory

      public DefaultCharArrayNodeFactory()
  • Method Details

    • createNode

      public Node createNode(CharSequence edgeCharacters, Object value, List<Node> childNodes, boolean isRoot)
      Description copied from interface: NodeFactory
      Returns a new 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.
      Specified by:
      createNode in interface NodeFactory
      Parameters:
      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 characters
      value - 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 node
      isRoot - 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 empty
      Returns:
      An object implementing the Node interface which stores the given variables