import com.seanhandley.projects.BinaryTree.*; /** * * Client test code for the generic binary tree object. * * @author Sean Handley, 320097@swan.ac.uk * @version May 2007 */ public class Client { private BinaryTree<Car> carTree1; private BinaryTree<Car> carTree2; private BinaryTree<Plane> planeTree; private CarStrategy1 cs1; private CarStrategy2 cs2; private PlaneStrategy ps; /** * Constructor. */ public Client() { cs1 = new CarStrategy1(); cs2 = new CarStrategy2(); ps = new PlaneStrategy(); carTree1 = new BinaryTree<Car>(cs1); carTree2 = new BinaryTree<Car>(cs2); planeTree = new BinaryTree<Plane>(ps); /* * carTree2 = new BinaryTree<Plane>(cs2); * * gives two errors: * * The constructor BinaryTree<Plane>(CarStrategy2) is undefined * * Type mismatch: cannot convert from BinaryTree<Plane> to BinaryTree<Car> */ /* * carTree2 = new BinaryTree<Car>(ps); * * gives the following error: * * The constructor BinaryTree<Car>(PlaneStrategy) is undefined */ } /* * Run test code. */ private void test() { //car code 1 System.out.println("Tree is empty? " + carTree1.empty()); carTree1.add(new Car(5000,"Ford","ABC123")); carTree1.add(new Car(4000,"Honda","CDE456")); carTree1.add(new Car(8000,"Skoda","EFG789")); carTree1.add(new Car(2000,"Porsche","HIJ123")); carTree1.add(new Car(1000,"Volkswagen","KLM456")); System.out.println(carTree1.toString()); System.out.println("Tree is empty? " + carTree1.empty()); System.out.println("Nodes in tree: " + carTree1.size()); System.out.println("Visitor says: " + carTree1.visit(new CarVisitor1())); /* * System.out.println("Visitor says: " + carTree1.visit(new PlaneVisitor1())); * * gives the following error: * The method visit(IVisitor<Car,R>) in the type BinaryTree<Car> is * not applicable for the arguments (PlaneVisitor1) */ //car code 2 System.out.println("Tree is empty? " + carTree2.empty()); carTree2.add(new Car(5000,"Ford","ABC223")); carTree2.add(new Car(4000,"Honda","CDE456")); carTree2.add(new Car(8000,"Skoda","EFG789")); carTree2.add(new Car(2000,"Porsche","HIJ223")); carTree2.add(new Car(1000,"Volkswagen","KLM456")); System.out.println(carTree2.toString()); System.out.println("Tree is empty? " + carTree2.empty()); System.out.println("Nodes in tree: " + carTree2.size()); System.out.println("Visitor says: " + carTree2.visit(new CarVisitor1())); //plane code System.out.println("Tree is empty? " + planeTree.empty()); planeTree.add(new Plane(30,"Concord","ABC123")); planeTree.add(new Plane(40,"Boeing","CDE456")); planeTree.add(new Plane(80,"Harrier","EFG789")); planeTree.add(new Plane(20,"MIG","HIJ123")); planeTree.add(new Plane(10,"Wright Bros.","KLM456")); System.out.println(planeTree.toString()); System.out.println("Tree is empty? " + planeTree.empty()); System.out.println("Nodes in tree: " + planeTree.size()); System.out.println("Visitor says: " + planeTree.visit(new PlaneVisitor1())); } /** * Main method. * * @param args */ public static void main(String args[]) { Client c = new Client(); c.test(); } }