Что не так?
package com.javarush.task.task19.task1905;
import com.sun.rowset.internal.Row;
import javax.xml.crypto.Data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
Адаптировать Customer и Contact к RowItem.
Классом-адаптером является DataAdapter.
Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
UA Ukraine
RU Russia
CA Canada
1. Класс Solution должен содержать public static поле countries типа Map<String, String>.
2. В статическом блоке класса Solution инициализируй поле countries тестовыми данными согласно заданию.
3. Класс Solution должен содержать интерфейс RowItem.
4. Класс Solution должен содержать интерфейс Contact.
5. Класс Solution должен содержать интерфейс Customer.
6. Класс DataAdapter должен реализовывать интерфейс RowItem.
7. Класс DataAdapter должен содержать два приватных поля: customer типа Customer и contact Contact.
8. Класс DataAdapter должен содержать конструктор с параметрами (Customer customer, Contact contact), который инициализирует поля contact и customer.
9. В классе DataAdapter реализуй методы интерфейса RowItem используя подсказки в виде комментариев в интерфейсах.
*/
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) {
}
public static class DataAdapter implements RowItem {
private Customer customer;
private Contact contact;
DataAdapter(Customer customer, Contact contact){
this.customer = customer;
this.contact = contact;
}
@Override
public String getCountryCode() {
for(Map.Entry<String,String> s:countries.entrySet()){
if(customer.getCountryName().equals(s.getValue())){
return s.getKey();
}
}
return null;
}
@Override
public String getCompany() {
return customer.getCompanyName();
}
@Override
public String getContactFirstName() {
String s = contact.getName();
String[] mass = s.split(" ");
return mass[1];
}
@Override
public String getContactLastName() {
String s = contact.getName();
String[] mass = s.split(",");
return mass[0];
}
@Override
public String getDialString() {
String s = contact.getPhoneNumber();
List<Character> charList = new ArrayList<Character>();
for (char c : s.toCharArray()) {
charList.add(c);
}
char[] mass = new char[charList.size()];
for(int i=0;i<charList.size();i++){
if(charList.get(i).equals('1')||charList.get(i).equals('2')||charList.get(i).equals('3')||charList.get(i).equals('4')||charList.get(i).equals('5')||charList.get(i).equals('6')||charList.get(i).equals('7')||charList.get(i).equals('8')||charList.get(i).equals('9')||charList.get(i).equals('0')){
mass[i]=charList.get(i);
}
}
String myStr = new String(mass);
return "callto://+" + myStr;
}
}
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 ...
}
}