package com.javarush.test.level19.lesson03.task05;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/* Закрепляем адаптер
Адаптировать Customer и Contact к RowItem.
Классом-адаптером является DataAdapter.
Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
UA Ukraine
RU Russia
CA Canada
*/
public class Solution {
private 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 DataAdapter implements RowItem {
private Customer customer;
private Contact contact;
private String fullName;
public DataAdapter(Customer customer, Contact contact) {
this.contact=contact;
this.customer=customer;
fullName=contact.getName();
}
@Override
public String getCountryCode() {
String countryName=customer.getCountryName();
String countryCode=null;
for(Map.Entry<String, String> a: countries.entrySet()){
if (a.getValue().equals(countryName)){
countryCode=a.getKey();
}
}
return countryCode;
}
@Override
public String getCompany() {
return customer.getCompanyName();
}
@Override
public String getContactFirstName() {
String firstName=fullName.split(", ")[1];
return firstName;
}
@Override
public String getContactLastName() {
String lastName=fullName.split(", ")[0];
return lastName;
}
@Override
public String getDialString() {
return "callto://+" + contact.getPhoneNumber().replaceAll("[^0-9]", "");
}
}
public static interface RowItem {
String getCountryCode(); //example UA
String getCompany(); //example JavaRush Ltd.
String getContactFirstName(); //example Ivan
String getContactLastName(); //example Ivanov
String getDialString(); //example callto://+380501234567
}
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
}
}
Leave A Comment