Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.HashSet;
- import java.util.List;
- import java.util.Scanner;
- import java.util.Set;
- public class UserInterface {
- private Scanner reader;
- private PersonMaintenance pm;
- private String name;
- private String result;
- private String output;
- private List<String> phoneNumbers;
- private String message = " phone number not found";
- public UserInterface(Scanner input) {
- reader = input;
- pm = new PersonMaintenance();
- }
- public void start() {
- printMenuOptions();
- enterMenuOption();
- }
- private void printMenuOptions() {
- System.out.println("phone search");
- System.out.println("available operations:");
- System.out.println(" 1 add a number");
- System.out.println(" 2 search for a number");
- System.out.println(" 3 search for a person by phone number");
- System.out.println(" 4 add an address");
- System.out.println(" 5 search for personal information");
- System.out.println(" 6 delete personal information");
- System.out.println(" 7 filtered listing");
- System.out.println(" x quit");
- }
- private void enterMenuOption() {
- while (true) {
- System.out.print("command: ");
- String commandNumber = reader.next();
- if (commandNumber.contentEquals("x")) {
- break;
- }
- runSearch(commandNumber);
- }
- }
- private void runSearch(String commandNumber) {
- int commandReceived = Integer.valueOf(commandNumber);
- String number = null;
- switch (commandReceived) {
- case 1:
- System.out.print("whose number: ");
- name = reader.next();
- System.out.print("number: ");
- number = reader.next();
- pm.addPhone(name, number);
- break;
- case 2:
- System.out.print("whose number: ");
- name = reader.next();
- phoneNumbers = pm.searchPhoneNumberByName(name);
- message = " not found";
- printPhoneNumbers(phoneNumbers, message);
- break;
- case 3:
- System.out.print("number: ");
- number = reader.next();
- result = pm.searchForPersonByNumber(number);
- output = result == null ? message : result;
- System.out.println(output);
- break;
- case 4:
- System.out.print("whose address: ");
- name = reader.next();
- System.out.print("street: ");
- String street = reader.next();
- System.out.print("city: ");
- String city = reader.next();
- pm.addAddress(name, street, city);
- break;
- case 5:
- System.out.print("whose information: ");
- name = reader.next();
- result = pm.searchForAddress(name);
- phoneNumbers = pm.searchPhoneNumberByName(name);
- if ((result == null) && (phoneNumbers == null)) {
- System.out.println(" not found");
- return;
- }
- output = result == null ? " address unknown" : result;
- System.out.println(output);
- printPhoneNumbers(phoneNumbers, message);
- break;
- case 6:
- System.out.print("whose information: ");
- name = reader.next();
- pm.removeInformation(name);
- break;
- case 7:
- System.out.print("whose information: ");
- System.out.print("keyword (if empty, all listed): ");
- String keyword = reader.next();
- Set<Address> addressResponse = new HashSet<Address>();
- addressResponse = pm.getAllAddresses();
- printFilteredListing(addressResponse, keyword);
- default:
- break;
- }
- }
- private void printFilteredListing(Set<Address> addressResponse, String keyword) {
- message = "phone number not found";
- name = keyword;
- for (Address a : addressResponse) {
- if ((keyword == null) || (keyword.isEmpty())) { // No Keyword Given
- name = a.getName();
- result = " address: " + a.getStreet() + " " + a.getCity();
- } else if ((a.getStreet().contains(keyword)) || (a.getCity().contains(keyword))) {
- name = a.getName();
- result = " address: " + a.getStreet() + " " + a.getCity();
- } else if (a.getName().contains(keyword)) {
- name = a.getName();
- result = " address: " + a.getStreet() + " " + a.getCity();
- }
- phoneNumbers = pm.searchPhoneNumberByName(name);
- if ((result == null) && (phoneNumbers == null)) {
- output = " keyword not found";
- } else {
- output = result == null ? " " + name + "\n address unknown" : " " + name + "\n" + result;
- }
- System.out.println(output);
- printPhoneNumbers(phoneNumbers, message);
- }
- }
- private void printPhoneNumbers(List<String> phoneNumbers, String message) {
- if (phoneNumbers == null) {
- System.out.println(message);
- } else {
- for(String s: phoneNumbers) {
- System.out.println(" " + s);
- };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement