
/**
 * NonEmptyTree.java
 *
 *
 * Created: Sun Oct 20 23:08:33 2002
 *
 * @author <a href="mailto:bina@cse.buffalo.edu "</a>
 * @version
 */

public class NonEmptyTree extends AState{
   private Object data;
   private SBTree left = new SBTree();
   private SBTree right = new SBTree(); // empty tree on the left and right

   public NonEmptyTree (Object obj){
      data = obj;
   }

   public NonEmptyTree(Object obj, SBTree lft, SBTree rgt)
   {
      data = obj;
      left = lft;
      right = rgt;
   }

   public Object getData( )   
   {
      return data;
   }

   public SBTree getLeft( )
   {
      return  left;                                              
   } 
   
   public SBTree getRight( )
   {
      return  right;                                               
   } 


   public void setData(Object obj, SBTree sbt)   
   {
      data = obj;
      //sbt.changeState(this);
   }                                                               
   

   public void setLeft(SBTree lft)
   {                    
      left = lft;
   }

   public void setRight(SBTree rgt)
   {                    
      right = rgt;
   }  


   public Object acceptVisitor(SBVisitor outsider, Object inp, SBTree sbt)
   {  
      // callback visitor
      return outsider.operationOnNonEmpty(sbt, inp);
   }
   

}// NonEmptyTree
