/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.smartitengineering.user.service.impl.hbase.solr;
import com.smartitengineering.dao.solr.MultivalueMap;
import com.smartitengineering.dao.solr.impl.MultivalueMapImpl;
import com.smartitengineering.user.domain.User;
import com.smartitengineering.user.domain.UserGroup;
import com.smartitengineering.user.service.Services;
import com.smartitengineering.util.bean.adapter.AbstractAdapterHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author saumitra
*/
public class UserGroupAdapterHelper extends AbstractAdapterHelper<UserGroup, MultivalueMap<String, Object>> {
public static final String PREFIX = "userGroup:";
private static final int PREFIX_INDEX = PREFIX.length();
public static Logger logger = LoggerFactory.getLogger(UserGroupAdapterHelper.class);
@Override
protected MultivalueMap<String, Object> newTInstance() {
return new MultivalueMapImpl<String, Object>();
}
@Override
protected void mergeFromF2T(UserGroup fromBean,
MultivalueMap<String, Object> toBean) {
toBean.addValue("id", new StringBuilder(PREFIX).append(fromBean.getId().toString()).toString());
toBean.addValue("organizationUniqueShortName", fromBean.getOrganization().getUniqueShortName());
toBean.addValue("name", fromBean.getName());
if (logger.isInfoEnabled()) {
logger.info("Grouped Users to index (" + fromBean.getName() + ") "+ fromBean.getUsers());
}
for (User user : fromBean.getUsers()) {
toBean.addValue("groupedUserName", user.getUsername());
}
}
@Override
protected UserGroup convertFromT2F(MultivalueMap<String, Object> toBean) {
return Services.getInstance().getUserGroupService().getByOrganizationAndUserGroupName(toBean.getFirst(
"organizationUniqueShortName").toString(), toBean.getFirst("name").toString());
}
}