RightDelDontAsk.java
Created with JBuilder

package brs.visitor;

import brs.*;
import ordering.*;

/**
* Removes the root of the host's parent.  Called by the left sibling to help
* delete
* the parent's root, so don't ask for the sibling to help!
* @author Dung  X. Nguyen
*/
public class RightDelDontAsk implements IVisitor {
    private BiTree _hostParent;
    private IVisitor _deleter;

    public RightDelDontAsk (BiTree parent, IVisitor del) {
        _hostParent = parent;
        _deleter = del;
    }


    /**
    * Asks the _hostParent to remove its root.
    * @param host the right subtree of _hostParent.
    * @param input not used.
    * @return
    */
    public Object emptyCase(BiTree host, Object input) {
        _hostParent.remRoot ();
        return null;
    }

    /**
    * Finds the minimum value in the host.
    * Asks the _hostParent to set its root to this minimum value, and removes
    * this minimum value from the host.
    * @param host the right subtree of _hostParent.
    * @param input not used.
    * @return
    */
    public Object nonEmptyCase(BiTree host, Object input) {
        BiTree minTree = (BiTree)host.execute (MinTreeFinder.Singleton, null);
        Object min = minTree.getRootDat();
        _hostParent.setRootDat(min);
        minTree.execute (_deleter, min);
        return null;
    }
}



RightDelDontAsk.java
Created with JBuilder