Advertisement
Guest User

Untitled

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