Первый раз затупил - брал плюс из getPhoneNumber(). Потом исправился, вывод в IDEA адекватный. Подскажите, пожалуйста, что ещё не так?
package com.javarush.task.task19.task1905;
import java.util.*;
/*
Закрепляем адаптер
*/
public class Solution {
public static Map<String,String> countries = new HashMap<>();
static {
countries.put("UA", "Ukraine");
countries.put("RU", "Russia");
countries.put("CA", "Canada");
}
public static void main(String[] args) {
/*
Customer customer = new Customer() {
@Override
public String getCompanyName() {
return "JavaRush Ltd.";
}
@Override
public String getCountryName() {
return "Ukraine";
}
};
Contact contact = new Contact() {
@Override
public String getName() {
return "Sukhonosov, Nikita";
}
@Override
public String getPhoneNumber() {
return "+38(050)085-25-93";
}
};
DataAdapter dataAdapter = new DataAdapter(customer, contact);
System.out.println(dataAdapter.getCountryCode());
System.out.println(dataAdapter.getCompany());
System.out.println(dataAdapter.getContactFirstName());
System.out.println(dataAdapter.getContactLastName());
System.out.println(dataAdapter.getDialString());
*/
}
public static class DataAdapter implements RowItem {
private Customer customer;
private Contact contact;
public DataAdapter(Customer customer, Contact contact) {
this.customer = customer;
this.contact = contact;
}
@Override
public String getCountryCode() {
String key = "";
Set<Map.Entry<String, String>> keys = countries.entrySet();
for (Map.Entry<String, String> s : keys){
if (customer.getCountryName().equals(s.getValue())){
key = s.getKey();
}
}
return key;
}
@Override
public String getCompany() {
return customer.getCompanyName();
}
@Override
public String getContactFirstName() {
String[] strings = contact.getName().split(",\\s");
return strings[1];
}
@Override
public String getContactLastName() {
String[] strings = contact.getName().split(",\\s");
return strings[0];
}
@Override
public String getDialString() {
return "callto://+" + contact.getPhoneNumber().substring(1,3) + contact.getPhoneNumber().substring(4,7)
+ contact.getPhoneNumber().substring(8,11) + contact.getPhoneNumber().substring(12,14)
+ contact.getPhoneNumber().substring(15);
}
}
public 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 interface Customer {
String getCompanyName(); //example JavaRush Ltd.
String getCountryName(); //example Ukraine
}
public interface Contact {
String getName(); //example Ivanov, Ivan
String getPhoneNumber(); //example +38(050)123-45-67
}
}