com.googlecode.concurrenttrees.radix.node.concrete
Class DefaultCharSequenceNodeFactory

java.lang.Object
  extended by com.googlecode.concurrenttrees.radix.node.concrete.DefaultCharSequenceNodeFactory
All Implemented Interfaces:
NodeFactory

public class DefaultCharSequenceNodeFactory
extends Object
implements NodeFactory

A NodeFactory which creates various implementations of Node objects all of which store incoming edge characters as a CharSequence (a view onto the original key) rather than copying the edge into a character array.

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 Void-optimized nodes above which can reduce memory usage.

Author:
Niall Gallagher

Constructor Summary
DefaultCharSequenceNodeFactory()
           
 
Method Summary
 Node createNode(CharSequence edgeCharacters, Object value, List<Node> childNodes, boolean isRoot)
          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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultCharSequenceNodeFactory

public DefaultCharSequenceNodeFactory()
Method Detail

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


Copyright © 2013. All Rights Reserved.