не полностью реализован интерфейс RowItem.
package com.javarush.task.task19.task1905;
import java.util.HashMap;
import java.util.*;
import java.io.*;
import java.text.*;
/*
Закрепляем адаптер
*/
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 void main(String[] args) {
Contact cont=new Contact(){
public String getName(){
return "Mushtackov, Ivan";
}
public String getPhoneNumber(){
return "+38(456)125-12-12 or";
}
};
Customer cust=new Customer(){
public String getCountryName(){
return "Russia";
}
public String getCompanyName(){
return "java rush ltd";
}
};
DataAdapter da=new DataAdapter(cust,cont);
System.out.println( da.getDialString()+
da.getCountryCode()+
da.getCompany()+
da.getContactLastName()+
da.getContactFirstName());
}
public static class DataAdapter {//STATIC KILL
private Customer customer;
private Contact contact;
public DataAdapter(Customer customer, Contact contact) {
this.customer=customer;
this.contact=contact;
}
public String getCountryCode(){
String country=customer.getCountryName();
Set<Map.Entry<String,String>> countrySet= countries.entrySet();
for (Map.Entry<String,String>pair: countrySet){
if(pair.getValue().equals(country))return pair.getKey();
}
return null;
}
public String getCompany(){
return customer.getCompanyName();
}
public String getContactFirstName(){
String str=contact.getName().split(", ")[1];
return str;
}
public String getContactLastName(){
return contact.getName().split(", ")[0];
}
public String getDialString(){
String phone=contact.getPhoneNumber();
String ph=phone.split("or")[0];
return "callto://"+ph.replaceAll("[-\\(\\)]","");
}
}
public static interface RowItem {
String getCountryCode(); //For example: UA
String getCompany(); //For example: JavaRush Ltd.
String getContactFirstName(); //For example: Ivan
String getContactLastName(); //For example: Ivanov
String getDialString(); //For example: callto://+380501234567
}
public static interface Customer {
String getCompanyName(); //For example: JavaRush Ltd.
String getCountryName(); //For example: Ukraine
}
public static interface Contact {
String getName(); //For example: Ivanov, Ivan
String getPhoneNumber(); //For example: +38(050)123-45-67 or +3(805)0123-4567 or +380(50)123-4567 or ...
}
}