
/**
 * ExpressoAir.java
 *
 *
 * Created: Thu Oct 10 13:34:45 2002
 *
 * @author <a href="mailto: "Bina Ramamurthy</a>
 * @version
 */
import java.util.*;

public class ExpressoAir {

   static String[] initial = {"Buffalo", "BUF", 
			      "New York","NYU", 
			      "New York", "NYU", 
			      "Pittsburg", "PIT", 
			      "Pittsburgh", "PIT",
			      "Buffalo", "BUF"}; 
   static AirlineMap ourRoutes = new AirlineMap();

   public static void main (String[] args) {

      setupInitialRoutes();
      System.out.println(ourRoutes);

      System.out.println("Adding a Route");
      System.out.println();
      Airport chg = new Airport("Chicago", "ORD");
      Airport buf = new Airport("Buffalo", "BUF");
      ourRoutes.addRoute(chg,buf);
      System.out.println(ourRoutes);

      ListIterator lst = ourRoutes.getRoutesByDest(buf);
      System.out.println("Routes with Buffalo as destination");
      while (lst.hasNext()) {
	 System.out.println(lst.next());
      } // end of while ()
      
      System.out.println();
      lst = ourRoutes.getRoutesByOrg(buf);
      System.out.println("Routes with Buffalo as origin");
      while (lst.hasNext()) {
	 System.out.println(lst.next());
      } // end of while ()

    
      Route rte = new Route(chg,buf);
      System.out.println();
      if ( ourRoutes.deleteRoute(rte)) {
	 System.out.println(rte.getOrigin()+" to "+rte.getDest()+" route has been removed");
      } // end of if ()
      else {
	 System.out.println("No such routes");
      } // end of else
      System.out.println(ourRoutes);

             
   } // end of main ()
  
 
   public static void setupInitialRoutes()
   {
      int numRoutes = initial.length/4;
      Route[] r = new Route[numRoutes];

      Airport orgAirport, destAirport;
      
      System.out.println("Setting up Initial Routes");
      System.out.println();
      for (int i = 0; i < numRoutes*4; i=i+4 ) {
	 orgAirport = new Airport(initial[i],initial[i+1]);
	 destAirport = new Airport(initial[i+2],initial[i+3]);
	 ourRoutes.addRoute(orgAirport, destAirport);
      } // end of for ()
   }      
}// ExpressoAir
