package org.ovirt.engine.api.restapi.types;
import org.ovirt.engine.api.model.Domain;
import org.ovirt.engine.api.model.Group;
import org.ovirt.engine.api.model.Groups;
import org.ovirt.engine.api.model.User;
import org.ovirt.engine.core.common.businessentities.AdUser;
import org.ovirt.engine.core.common.businessentities.DbUser;
import org.ovirt.engine.core.common.businessentities.ad_groups;
import org.ovirt.engine.core.common.users.VdcUser;
import org.ovirt.engine.core.compat.NGuid;
import org.ovirt.engine.core.compat.StringHelper;
public class UserMapper {
@Mapping(from = DbUser.class, to = User.class)
public static User map(DbUser entity, User template) {
User model = template != null ? template : new User();
model.setName(entity.getname());
model.setUserName(entity.getusername());
model.setId(entity.getuser_id().toString());
model.setLastName(entity.getsurname());
model.setEmail(entity.getemail());
model.setDepartment(entity.getdepartment());
if (entity.getgroups() != null) {
model.setGroups(new Groups());
for (String name : entity.getgroups().split(",")) {
Group group = new Group();
group.setName(name);
model.getGroups().getGroups().add(group);
}
}
if(!StringHelper.isNullOrEmpty(entity.getdomain())){
Domain dom = new Domain();
dom.setName(entity.getdomain());
dom.setId(new NGuid(entity.getdomain().getBytes(), true).toString());
model.setDomain(dom);
}
return model;
}
@Mapping(from = AdUser.class, to = VdcUser.class)
public static VdcUser map(AdUser adUser, VdcUser template) {
VdcUser vdcUser = template != null ? template : new VdcUser();
vdcUser.setUserId(adUser.getUserId());
vdcUser.setUserName(adUser.getUserName());
vdcUser.setSurName(adUser.getSurName());
vdcUser.setDomainControler(adUser.getDomainControler());
return vdcUser;
}
@Mapping(from = AdUser.class, to = User.class)
public static User map(AdUser entity, User template) {
User model = template != null ? template : new User();
model.setName(entity.getName());
model.setUserName(entity.getUserName());
model.setId(entity.getUserId().toString());
model.setLastName(entity.getSurName());
model.setEmail(entity.getEmail());
model.setDepartment(entity.getDepartment());
if (entity.getGroups() != null) {
model.setGroups(new Groups());
for (ad_groups adgroup : entity.getGroups().values()) {
Group group = new Group();
group.setName(adgroup.getname());
model.getGroups().getGroups().add(group);
}
}
if(!StringHelper.isNullOrEmpty(entity.getDomainControler())){
Domain dom = new Domain();
dom.setName(entity.getDomainControler());
dom.setId(new NGuid(entity.getDomainControler().getBytes(), true).toString());
model.setDomain(dom);
}
return model;
}
}