package fr.mch.mdo.restaurant.services.business.utils;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import fr.mch.mdo.logs.ILogger;
import fr.mch.mdo.restaurant.beans.dto.MdoUserTitle;
import fr.mch.mdo.restaurant.beans.dto.UserAuthenticationDto;
import fr.mch.mdo.restaurant.beans.dto.UserDto;
import fr.mch.mdo.restaurant.dao.beans.UserAuthentication;
import fr.mch.mdo.restaurant.dao.beans.UserLocale;
import fr.mch.mdo.restaurant.services.logs.LoggerServiceImpl;
public class DefaultUsersHelper implements IUsersHelper
{
private ILogger logger;
private static class LazyHolder {
private static IUsersHelper instance = new DefaultUsersHelper(
LoggerServiceImpl.getInstance().getLogger(DefaultUsersHelper.class.getName()));
}
private DefaultUsersHelper(ILogger logger) {
this.setLogger(logger);
}
public static IUsersHelper getInstance() {
return LazyHolder.instance;
}
/**
* This constructor is used by ioc
*/
public DefaultUsersHelper() {
}
/**
* @return the logger
*/
public ILogger getLogger() {
return logger;
}
/**
* @param logger the logger to set
*/
public void setLogger(ILogger logger) {
this.logger = logger;
}
@Override
public UserAuthenticationDto fromUserAuthentication(UserAuthentication user) {
UserAuthenticationDto result = new UserAuthenticationDto();
result.setId(user.getId());
result.setLogin(user.getLogin());
Set<UserLocale> userlocales = user.getLocales();
if (userlocales != null) {
Map<String, Long> locales = new HashMap<String, Long>();
for (UserLocale userLocale : userlocales) {
String language = userLocale.getLocale().getLanguage();
Long id = userLocale.getLocale().getId();
locales.put(language, id);
}
result.setLocales(locales);
}
UserDto _user = new UserDto();
_user.setName(user.getUser().getName());
_user.setForename1(user.getUser().getForename1());
_user.setForename1(user.getUser().getForename2());
_user.setTitle(MdoUserTitle.valueOf(user.getUser().getTitle().getName()));
result.setUser(_user);
return result;
}
@Override
public UserAuthentication toUserAuthentication(UserAuthenticationDto user) {
return null;
}
}