Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Адаптация нескольких интерфейсов
- Адаптировать IncomeData к Customer и Contact.
- Классом-адаптером является IncomeDataAdapter.
- Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
- UA Ukraine
- RU Russia
- CA Canada
- Дополнить телефонный номер нулями до 10 цифр при необходимости (смотри примеры)
- Обратите внимание на формат вывода фамилии и имени человека
- */
- import java.util.HashMap;
- import java.util.Map;
- public class Solution {
- public static Map<String, String> countries = new HashMap<String, String>();
- static {
- countries.put("UA", "Ukraine");
- countries.put("RU", "Russia");
- countries.put("CA", "Canada");
- }
- public static class IncomeDataAdapter implements Customer, Contact {
- private IncomeData data;
- public IncomeDataAdapter(IncomeData incomeData){
- this.data = incomeData;
- }
- @Override
- public String getName() {
- return data.getContactLastName() + ", " + data.getContactFirstName();
- }
- @Override
- public String getPhoneNumber() {
- String phoneNumber = String.valueOf(data.getPhoneNumber());
- while (phoneNumber.length() < 10){
- phoneNumber = "0" + phoneNumber;
- }
- String newPhoneNumber = "(" + String.valueOf(phoneNumber).substring(0, 3) + ")";
- newPhoneNumber += String.valueOf(phoneNumber).substring(3, 6);
- newPhoneNumber += "-" + String.valueOf(phoneNumber).substring(6, 8);
- newPhoneNumber += "-" + String.valueOf(phoneNumber).substring(8);
- return "+" + data.getCountryPhoneCode() + newPhoneNumber;
- }
- @Override
- public String getCompanyName() {
- return data.getCompany();
- }
- @Override
- public String getCountryName() {
- return countries.get(data.getCountryCode());
- }
- }
- 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
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement