package fi.arcusys.koku.common.external;
import fi.arcusys.koku.common.service.datamodel.User;
import fi.arcusys.koku.common.soa.UserInfo;
import fi.koku.services.entity.customer.v1.CustomerType;
import fi.koku.services.entity.customer.v1.ElectronicContactInfoType;
import fi.koku.services.entity.customer.v1.ElectronicContactInfosType;
import fi.koku.services.entity.customer.v1.PhoneNumberType;
import fi.koku.services.entity.customer.v1.PhoneNumbersType;
/**
* Common methods for usage by DAO-implementations, related to access to external components
*
* @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi)
* Oct 17, 2011
*/
class ExternalDAOsUtil {
static UserInfo convertCustomerToUser(final CustomerType customer, final User user) {
final UserInfo userInfo = new UserInfo();
userInfo.setDisplayName(customer.getEtuNimi() + " " + customer.getSukuNimi());
userInfo.setEmail(getEmailAsString(customer.getElectronicContactInfos()));
userInfo.setFirstname(customer.getEtuNimi());
userInfo.setLastname(customer.getSukuNimi());
final PhoneNumbersType phoneNumbers = customer.getPhoneNumbers();
userInfo.setPhoneNumber(getPhonesAsString(phoneNumbers));
userInfo.setUid(user.getUid());
return userInfo;
}
private static String getEmailAsString(final ElectronicContactInfosType electronicContactInfos) {
if (electronicContactInfos == null || electronicContactInfos.getEContactInfo() == null || electronicContactInfos.getEContactInfo().isEmpty()) {
return "";
}
final StringBuilder result = new StringBuilder();
for (final ElectronicContactInfoType info : electronicContactInfos.getEContactInfo()) {
result.append(info.getContactInfo()).append(";");
}
if (result.length() > 0 ) {
result.setLength(result.length() - 1);
}
return result.toString();
}
private static String getPhonesAsString(final PhoneNumbersType phoneNumbers) {
if (phoneNumbers == null || phoneNumbers.getPhone() == null || phoneNumbers.getPhone().isEmpty()) {
return "";
}
final StringBuilder result = new StringBuilder();
for (final PhoneNumberType number : phoneNumbers.getPhone()) {
result.append(number.getPuhelinnumeroTeksti()).append(";");
}
if (result.length() > 0 ) {
result.setLength(result.length() - 1);
}
return result.toString();
}
}