Объясните пожалуйста, вопросов к задаче нет, просто не понятно почему код неправильный
package com.javarush.task.task19.task1903;
/*
Адаптация нескольких интерфейсов
*/
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 void main(String[] args) {
IncomeData in = new IncomeData() {
@Override
public String getCountryCode() {return "UA";}
@Override
public String getCompany() {return "JavaRush Ltd.";}
@Override
public String getContactFirstName() {return "Ivan";}
@Override
public String getContactLastName() {return "Ivanov";}
@Override
public int getCountryPhoneCode() {return 38;}
@Override
public long getPhoneNumber() {return 6588034567L;}
};
Customer cus = new IncomeDataAdapter(in);
Contact con = new IncomeDataAdapter(in);
System.out.println(cus.getCompanyName());
System.out.println(cus.getCountryName());
System.out.println(con.getName());
System.out.println(con.getPhoneNumber());
}
public static class IncomeDataAdapter implements Customer, Contact{
private IncomeData data;
public IncomeDataAdapter(IncomeData i) {this.data = i;}
@Override
public String getCompanyName() {
return data.getCompany();
}
@Override
public String getCountryName() {
String name = null;
for(Map.Entry<String,String>pair:countries.entrySet()) {
if(data.getCountryCode().equals(pair.getKey())) {
name = pair.getValue();
}
}
return name;
}
@Override
public String getName() {return data.getContactLastName() + ", " + data.getContactFirstName();}
@Override
public String getPhoneNumber() {
String nn = "";
long length = (long)(Math.log10(data.getPhoneNumber())+1);
while(length<10) {
nn+="0";
length++;
}
String phN = "+" + data.getCountryPhoneCode() + nn + data.getPhoneNumber();
StringBuffer str = new StringBuffer(phN);
str.insert(3, "(");
str.insert(7, ")");
str.insert(11, "-");
str.insert(14, "-");
return new String(str);
}
}
public static interface IncomeData {
String getCountryCode(); //For example: UA
String getCompany(); //For example: JavaRush Ltd.
String getContactFirstName(); //For example: Ivan
String getContactLastName(); //For example: Ivanov
int getCountryPhoneCode(); //For example: 38
long getPhoneNumber(); //For example: 501234567
}
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 +38(032)654-80-00
}
}