module waitress; import menu, iterator, menuitem; import std.stdio : writeln, write; class Waitress { private Menu dinerMenu; this(Menu dinerMenu) { this.dinerMenu = dinerMenu; } void printMenu() { writeln("MENU\n----\nLUNCH"); printMenu(dinerMenu.createIterator()); } private void printMenu(Iterator iterator) { while (iterator.hasNext()) { MenuItem menuItem = iterator.next(); write(menuItem.getName(), ", "); write(menuItem.getPrice(), " -- "); writeln(menuItem.getDescription()); } } void printVegetarianMenu() { writeln("MENU\n----\nVEGETARIAN"); printVegetarianMenu(dinerMenu.createIterator()); } // bool isItemVegetarian(string name) // { // Iterator dinnerIterator = dinerMenu.createIterator(); // if (isVegetarian(name, dinnerIterator)) // { // return true; // } // return false; // } private void printVegetarianMenu(Iterator iterator) { while (iterator.hasNext()) { MenuItem menuItem = iterator.next(); if (menuItem.isVegetarian()) { write(menuItem.getName()); writeln("\t\t", menuItem.getPrice()); writeln("\t", menuItem.getDescription()); } } } // private bool isVegetarian(string name, Iterator iterator) // { // while (iterator.hasNext()) // { // MenuItem menuItem = iterator.next(); // if (menuItem.getName() == name) // { // if (menuItem.isVegetarian()) // { // return true; // } // } // } // return false; // } }