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

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

public class SmartArrayBasedNodeFactory
extends Object
implements NodeFactory

A NodeFactory which internally uses DefaultByteArrayNodeFactory to create nodes by default (which can reduce memory overhead), but falls back to DefaultCharArrayNodeFactory if characters are detected which cannot be represented as a single byte.

Author:
Niall Gallagher

Constructor Summary
SmartArrayBasedNodeFactory()
           
 
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

SmartArrayBasedNodeFactory

public SmartArrayBasedNodeFactory()
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.