Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. /* Адаптация нескольких интерфейсов
  2. Адаптировать IncomeData к Customer и Contact.
  3. Классом-адаптером является IncomeDataAdapter.
  4. Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
  5. UA Ukraine
  6. RU Russia
  7. CA Canada
  8. Дополнить телефонный номер нулями до 10 цифр при необходимости (смотри примеры)
  9. Обратите внимание на формат вывода фамилии и имени человека
  10. */
  11.  
  12. import java.util.HashMap;
  13. import java.util.Map;
  14.  
  15. public class Solution {
  16. public static Map<String, String> countries = new HashMap<String, String>();
  17.  
  18. static {
  19. countries.put("UA", "Ukraine");
  20. countries.put("RU", "Russia");
  21. countries.put("CA", "Canada");
  22. }
  23.  
  24. public static class IncomeDataAdapter implements Customer, Contact {
  25.  
  26. private IncomeData data;
  27.  
  28. public IncomeDataAdapter(IncomeData incomeData){
  29. this.data = incomeData;
  30. }
  31.  
  32. @Override
  33. public String getName() {
  34. return data.getContactLastName() + ", " + data.getContactFirstName();
  35. }
  36.  
  37. @Override
  38. public String getPhoneNumber() {
  39. String phoneNumber = String.valueOf(data.getPhoneNumber());
  40.  
  41. while (phoneNumber.length() < 10){
  42. phoneNumber = "0" + phoneNumber;
  43. }
  44.  
  45. String newPhoneNumber = "(" + String.valueOf(phoneNumber).substring(0, 3) + ")";
  46. newPhoneNumber += String.valueOf(phoneNumber).substring(3, 6);
  47. newPhoneNumber += "-" + String.valueOf(phoneNumber).substring(6, 8);
  48. newPhoneNumber += "-" + String.valueOf(phoneNumber).substring(8);
  49.  
  50. return "+" + data.getCountryPhoneCode() + newPhoneNumber;
  51. }
  52.  
  53. @Override
  54. public String getCompanyName() {
  55. return data.getCompany();
  56. }
  57.  
  58. @Override
  59. public String getCountryName() {
  60. return countries.get(data.getCountryCode());
  61. }
  62. }
  63.  
  64. public static interface IncomeData {
  65. String getCountryCode(); //example UA
  66.  
  67. String getCompany(); //example JavaRush Ltd.
  68.  
  69. String getContactFirstName(); //example Ivan
  70.  
  71. String getContactLastName(); //example Ivanov
  72.  
  73. int getCountryPhoneCode(); //example 38
  74.  
  75. int getPhoneNumber(); //example 501234567
  76. }
  77.  
  78. public static interface Customer {
  79. String getCompanyName(); //example JavaRush Ltd.
  80.  
  81. String getCountryName(); //example Ukraine
  82. }
  83.  
  84. public static interface Contact {
  85. String getName(); //example Ivanov, Ivan
  86.  
  87. String getPhoneNumber(); //example +38(050)123-45-67
  88. }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement