LAST:
Implement RowItem interface methods in the DataAdapter class using comment in the interfaces
Recommendation from mentor:
"The getCountryCode () method must return the code for the country as returned by the getCountryName () method of the customer field"
package pl.codegym.task.task19.task1905;
import java.util.HashMap;
import java.util.Map;
/*
Wzmocnij adapter
*/
public class Solution {
public static Map<String,String> countries = new HashMap<>();
static{
countries.put("UA","Ukraina");
countries.put("US", "Stany Zjednoczone");
countries.put("FR","Francja");
}
public static void main(String[] args) {
}
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() {
Map <String,String> map = new HashMap<>();
Object[] k = countries.values().toArray();
Object[]v = countries.keySet().toArray();
for(int i = 0; i < countries.size(); i++){
map.put(String.valueOf(k[i]), String.valueOf(v[i]));
}
return map.get(customer.getCountryName());
}
@Override
public String getCompany() {
return customer.getCompanyName();
}
String [] buffor= contact.getName().split(" ");
@Override
public String getContactFirstName() {
return buffor[1] ;
}
@Override
public String getContactLastName() {
return buffor[0].substring(0, buffor.length-1);
}
@Override
public String getDialString() {
String a = contact.getPhoneNumber().replace("(","");
String b = a.replace(")","");
String c = b.replace("-","");
String d = c.replace(",","");
return String.format("callto://%s",d);
}
}
public static interface RowItem {
String getCountryCode(); // Na przykład: US
String getCompany(); // Na przykład: CodeGym Ltd.
String getContactFirstName(); // Na przykład: John
String getContactLastName(); // Na przykład: Peterson
String getDialString(); // Na przykład: callto://+11112223333
}
public static interface Customer {
String getCompanyName(); // Na przykład: CodeGym Ltd.
String getCountryName(); // Na przykład: Stany Zjednoczone
}
public static interface Contact {
String getName(); // Na przykład: Peterson, John
String getPhoneNumber(); // Na przykład: +1(111)222-3333, +3(805)0123-4567, +380(50)123-4567, etc.
}
}
/*
Wzmocnij adapter
Dostosuj Customer i Contact do RowItem.
Klasa adaptera to DataAdapter.
Inicjalizuj countries przed uruchomieniem programu. Mapowanie pomiędzy kodami krajów i nazwami krajów:
UA Ukraina
US Stany Zjednoczone
FR Francja
Requirements:
1. Klasa Solution musi mieć publiczne statyczne pole Map<String, String> o nazwie countries.
2. Inicjalizuj pole countries w bloku statycznym w klasie Solution, korzystając z danych testowych dostarczonych w zadaniu.
3. Klasa Solution musi posiadać interfejs RowItem.
4. Klasa Solution musi posiadać interfejs Contact.
5. Klasa Solution musi posiadać interfejs Customer.
6. Klasa DataAdapter musi implementować interfejs RowItem.
7. Klasa DataAdapter musi zawierać dwa pola prywatne: Customer customer i Contact contact.
8. Klasa DataAdapter musi posiadać Konstruktor z parametrami (Customer customer, Contact contact). Musi on inicjalizować pola contact i customer.
9. Implementuj metody interfejsu RowItem w klasie DataAdapter korzystając z podpowiedzi w komentarzach w interfejsach.
*/