lojix/search/src/main/com/thesett/aima/search/util/informed/HeuristicSearchNode.java
public HeuristicSearchNode<O, T> makeNode(Successor successor) throws SearchNotExhaustiveException
    {
        HeuristicSearchNode<O, T> node = (HeuristicSearchNode<O, T>) super.makeNode(successor);

        // Make sure the new node has a reference to the heuristic evaluator
        node.heuristic = this.heuristic;

        // Compute h for the new node
        node.computeH();

        return node;
    }
public HeuristicSearchNode<O, T> makeNode(Successor successor) throws SearchNotExhaustiveException
    {
        HeuristicSearchNode<O, T> node = (HeuristicSearchNode<O, T>) super.makeNode(successor);

        // Make sure the new node has a reference to the heuristic evaluator
        node.heuristic = this.heuristic;

        // Compute h for the new node
        node.computeH();

        return node;
    }
Returns a new node based on a successor of this node. This new node will also be a HeuristicSearchNode.

@param     successor The successor state in the search space to create a new node for.

@return    A completely new heuristic search node for the successor state. This node will be of the correct
class, even for classes that sub-class this one.

@exception SearchNotExhaustiveException If a new node cannot be created. This may happen due to class visibility
or class loading problems.