//I know that, when I come to you, I will come in the fullness of the blessing of the Good News of Christ. (Romans 15:29) package com.javarush.task.task19.task1903; /* Адаптация нескольких интерфейсов */ import java.util.HashMap; import java.util.Map; public class Solution { public static Map countries = new HashMap(); static{ countries.put("UA", "Ukraine"); countries.put("RU", "Russia"); countries.put("CA", "Canada"); } public static void main(String[] args) { } public static class IncomeDataAdapter implements Customer, Contact { private IncomeData data; public IncomeDataAdapter(IncomeData incomeData) { this.data = incomeData; } @Override public String getCompanyName() { return data.getCompany(); } @Override public String getCountryName() { return countries.get(data.getCountryCode()); } @Override public String getName() { return String.format("%s, %s", data.getContactLastName(), data.getContactFirstName()); } @Override public String getPhoneNumber() { String phone = String.format("%010d", data.getPhoneNumber()); String result = "+" + data.getCountryPhoneCode() + "(" + phone.substring(0,3) + ")" + phone.substring(3,6) + "-" + phone.substring(6,8) + "-" + phone.substring(8); return result ; } } public static interface IncomeData { String getCountryCode(); //example UA String getCompany(); //example JavaRush Ltd. String getContactFirstName(); //example Ivan String getContactLastName(); //example Ivanov int getCountryPhoneCode(); //example 38 int getPhoneNumber(); //example 501234567 } public static interface Customer { String getCompanyName(); //example JavaRush Ltd. String getCountryName(); //example Ukraine } public static interface Contact { String getName(); //example Ivanov, Ivan String getPhoneNumber(); //example +38(050)123-45-67 } } /* Адаптация нескольких интерфейсов Адаптируй IncomeData к Customer и Contact. Классом-адаптером является IncomeDataAdapter. Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия: UA Ukraine RU Russia CA Canada Дополнить телефонный номер нулями до 10 цифр при необходимости (смотри примеры). Обратите внимание на формат вывода фамилии и имени человека. Требования: 1. Класс Solution должен содержать public static поле countries типа Map. 2. В статическом блоке класса Solution инициализируй поле countries тестовыми данными согласно заданию. 3. Класс IncomeDataAdapter должен реализовывать интерфейсы Customer и Contact. 4. Класс IncomeDataAdapter должен содержать приватное поле data типа IncomeData. 5. Класс IncomeDataAdapter должен содержать конструктор с параметром IncomeData. 6. В классе IncomeDataAdapter реализуй методы интерфейсов Customer и Contact используя подсказки в виде комментариев в интерфейсах. package com.javarush.task.task19.task1903; * Адаптация нескольких интерфейсов * import java.util.HashMap; import java.util.Map; public class Solution { public static Map countries = new HashMap(); public static void main(String[] args) { } public static class IncomeDataAdapter { } public static interface IncomeData { String getCountryCode(); //example UA String getCompany(); //example JavaRush Ltd. String getContactFirstName(); //example Ivan String getContactLastName(); //example Ivanov int getCountryPhoneCode(); //example 38 int getPhoneNumber(); //example 501234567 } public static interface Customer { String getCompanyName(); //example JavaRush Ltd. String getCountryName(); //example Ukraine } public static interface Contact { String getName(); //example Ivanov, Ivan String getPhoneNumber(); //example +38(050)123-45-67 } } */