/** A driver class for building some value meals 
 *
 * @author Jerod Weinman
 * @author revised by Henry M. Walker
 */
public class BuilderExample {

  
  /**
   * A program that creates a cook and uses it with various meal builders
   * to construct meals.
   *
   * @param args unused command-line arguments
   */
  public static void main(String[] args) {

    Cook cook = new Cook();
    Meal meal1, meal2, meal3, meal4;

    MealBuilder burgerBuilder = new BurgerMealBuilder();
    MealBuilder healthyBuilder = new HealthyMealBuilder();

    cook.setMealBuilder (burgerBuilder);
    cook.constructMeal();
    meal1 = cook.getMeal();

    cook.setMealBuilder (healthyBuilder);
    cook.constructMeal();
    meal2 = cook.getMeal();

    cook.setMealBuilder (healthyBuilder);
    cook.constructMeal();
    meal3 = cook.getMeal();

    cook.setMealBuilder (burgerBuilder);
    cook.constructMeal();
    meal4 = cook.getMeal();

    System.out.println("Order up! A " + meal1);
    System.out.println("Order up! A " + meal2);
    System.out.println("Order up! A " + meal3);
    System.out.println("Order up! A " + meal4);
  }
}
