package t234; /** * Represents the empty state of a 2-3-4 tree. EmptyNode is an example of the * Null object pattern. * * Since there is conceptually only one empty state for all the 2-3-4 trees, * EmptyNode is implemented with the Singleton pattern. * * @since 04/18/01 * @author Dung X. Nguyen, Copyright 2000 - All Rights Reserved. * @author Alan L. Cox */ class EmptyNode extends ANode234 { final public static EmptyNode Singleton = new EmptyNode(); private EmptyNode() { } final boolean isEmpty(Tree234 owner) { return true; } /** * Inserts an Integer into the owner tree without duplication. * * This is the EmptyNode. So just asks the owner to change its * state to a Node2. * * @param n != null. * @param owner the owner of this EmptyNode. */ final void insert(Tree234 owner, Integer n) { owner.changeRoot(new Node2(n)); } final void insertHelper(Tree234 ownerPo, Tree234 owner, Integer n) { owner.insert(n); // can call insert(owner, n) instead. } /** * @throw IllegalStateException("Empty tree cannot be a parent!"). */ final void attach(Tree234 owner, Tree234 lTree, Integer n, Tree234 rTree) { throw new IllegalStateException("Empty tree cannot be a parent!"); } final void drawRootAndSubtrees(int level) { System.out.print("{}"); } }