}
if (roleB.getPrivileges() != null) {
privs.addAll(roleB.getPrivileges());
}
CRole newRole = new CRole();
newRole.setId(roleA.getId());
newRole.setRoles(new ArrayList<String>(roles));
newRole.setPrivileges(new ArrayList<String>(privs));
// now for the name and description
if (StringUtils.isNotEmpty(roleA.getName())) {
newRole.setName(roleA.getName());
}
else {
newRole.setName(roleB.getName());
}
if (StringUtils.isNotEmpty(roleA.getDescription())) {
newRole.setDescription(roleA.getDescription());
}
else {
newRole.setDescription(roleB.getDescription());
}
// and session timeout (which we don't use)
if (roleA.getSessionTimeout() > roleB.getSessionTimeout()) {
newRole.setSessionTimeout(roleA.getSessionTimeout());
}
else {
newRole.setSessionTimeout(roleB.getSessionTimeout());
}
return newRole;
}