Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1.  
  2. import java.util.HashSet;
  3. import java.util.List;
  4. import java.util.Scanner;
  5. import java.util.Set;
  6.  
  7. public class UserInterface {
  8.  
  9. private Scanner reader;
  10. private PersonMaintenance pm;
  11. private String name;
  12. private String result;
  13. private String output;
  14. private List<String> phoneNumbers;
  15. private String message = " phone number not found";
  16.  
  17. public UserInterface(Scanner input) {
  18. reader = input;
  19. pm = new PersonMaintenance();
  20. }
  21.  
  22. public void start() {
  23. printMenuOptions();
  24. enterMenuOption();
  25. }
  26.  
  27. private void printMenuOptions() {
  28. System.out.println("phone search");
  29. System.out.println("available operations:");
  30. System.out.println(" 1 add a number");
  31. System.out.println(" 2 search for a number");
  32. System.out.println(" 3 search for a person by phone number");
  33. System.out.println(" 4 add an address");
  34. System.out.println(" 5 search for personal information");
  35. System.out.println(" 6 delete personal information");
  36. System.out.println(" 7 filtered listing");
  37. System.out.println(" x quit");
  38.  
  39. }
  40.  
  41. private void enterMenuOption() {
  42. while (true) {
  43. System.out.print("command: ");
  44. String commandNumber = reader.next();
  45.  
  46. if (commandNumber.contentEquals("x")) {
  47. break;
  48. }
  49. runSearch(commandNumber);
  50. }
  51. }
  52.  
  53. private void runSearch(String commandNumber) {
  54. int commandReceived = Integer.valueOf(commandNumber);
  55. String number = null;
  56.  
  57. switch (commandReceived) {
  58. case 1:
  59. System.out.print("whose number: ");
  60. name = reader.next();
  61. System.out.print("number: ");
  62. number = reader.next();
  63. pm.addPhone(name, number);
  64. break;
  65. case 2:
  66. System.out.print("whose number: ");
  67. name = reader.next();
  68. phoneNumbers = pm.searchPhoneNumberByName(name);
  69. message = " not found";
  70. printPhoneNumbers(phoneNumbers, message);
  71. break;
  72. case 3:
  73. System.out.print("number: ");
  74. number = reader.next();
  75.  
  76. result = pm.searchForPersonByNumber(number);
  77. output = result == null ? message : result;
  78. System.out.println(output);
  79. break;
  80. case 4:
  81. System.out.print("whose address: ");
  82. name = reader.next();
  83. System.out.print("street: ");
  84. String street = reader.next();
  85. System.out.print("city: ");
  86. String city = reader.next();
  87.  
  88. pm.addAddress(name, street, city);
  89. break;
  90. case 5:
  91. System.out.print("whose information: ");
  92. name = reader.next();
  93.  
  94. result = pm.searchForAddress(name);
  95. phoneNumbers = pm.searchPhoneNumberByName(name);
  96.  
  97. if ((result == null) && (phoneNumbers == null)) {
  98. System.out.println(" not found");
  99. return;
  100. }
  101.  
  102. output = result == null ? " address unknown" : result;
  103. System.out.println(output);
  104.  
  105. printPhoneNumbers(phoneNumbers, message);
  106. break;
  107. case 6:
  108. System.out.print("whose information: ");
  109. name = reader.next();
  110. pm.removeInformation(name);
  111. break;
  112.  
  113. case 7:
  114. System.out.print("whose information: ");
  115. System.out.print("keyword (if empty, all listed): ");
  116. String keyword = reader.next();
  117.  
  118. Set<Address> addressResponse = new HashSet<Address>();
  119. addressResponse = pm.getAllAddresses();
  120.  
  121. printFilteredListing(addressResponse, keyword);
  122.  
  123. default:
  124. break;
  125. }
  126. }
  127.  
  128. private void printFilteredListing(Set<Address> addressResponse, String keyword) {
  129. message = "phone number not found";
  130. name = keyword;
  131. for (Address a : addressResponse) {
  132. if ((keyword == null) || (keyword.isEmpty())) { // No Keyword Given
  133. name = a.getName();
  134. result = " address: " + a.getStreet() + " " + a.getCity();
  135. } else if ((a.getStreet().contains(keyword)) || (a.getCity().contains(keyword))) {
  136. name = a.getName();
  137. result = " address: " + a.getStreet() + " " + a.getCity();
  138. } else if (a.getName().contains(keyword)) {
  139. name = a.getName();
  140. result = " address: " + a.getStreet() + " " + a.getCity();
  141. }
  142.  
  143. phoneNumbers = pm.searchPhoneNumberByName(name);
  144.  
  145. if ((result == null) && (phoneNumbers == null)) {
  146. output = " keyword not found";
  147. } else {
  148. output = result == null ? " " + name + "\n address unknown" : " " + name + "\n" + result;
  149. }
  150. System.out.println(output);
  151. printPhoneNumbers(phoneNumbers, message);
  152. }
  153.  
  154. }
  155.  
  156. private void printPhoneNumbers(List<String> phoneNumbers, String message) {
  157. if (phoneNumbers == null) {
  158. System.out.println(message);
  159. } else {
  160. for(String s: phoneNumbers) {
  161. System.out.println(" " + s);
  162. };
  163. }
  164. }
  165.  
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement