default:
}
}
// 2. add data from defined template (if any)
AbstractAttributableTO template = AttributableType.USER == attrUtil.getType()
? syncTask.getUserTemplate() : syncTask.getRoleTemplate();
if (template != null) {
if (template instanceof UserTO) {
if (StringUtils.isNotBlank(((UserTO) template).getUsername())) {
String evaluated = jexlUtil.evaluate(((UserTO) template).getUsername(), attributableTO);
if (StringUtils.isNotBlank(evaluated)) {
((UserTO) attributableTO).setUsername(evaluated);
}
}
if (StringUtils.isNotBlank(((UserTO) template).getPassword())) {
String evaluated = jexlUtil.evaluate(((UserTO) template).getPassword(), attributableTO);
if (StringUtils.isNotBlank(evaluated)) {
((UserTO) attributableTO).setPassword(evaluated);
}
}
Map<Long, MembershipTO> currentMembs = ((UserTO) attributableTO).getMembershipMap();
for (MembershipTO membTO : ((UserTO) template).getMemberships()) {
MembershipTO membTBU;
if (currentMembs.containsKey(membTO.getRoleId())) {
membTBU = currentMembs.get(membTO.getRoleId());
} else {
membTBU = new MembershipTO();
membTBU.setRoleId(membTO.getRoleId());
((UserTO) attributableTO).addMembership(membTBU);
}
fillFromTemplate(membTBU, membTO);
}
}
if (template instanceof RoleTO) {
if (StringUtils.isNotBlank(((RoleTO) template).getName())) {
String evaluated = jexlUtil.evaluate(((RoleTO) template).getName(), attributableTO);
if (StringUtils.isNotBlank(evaluated)) {
((RoleTO) attributableTO).setName(evaluated);
}
}
((RoleTO) attributableTO).setParent(((RoleTO) template).getParent());
((RoleTO) attributableTO).setUserOwner(((RoleTO) template).getUserOwner());
((RoleTO) attributableTO).setRoleOwner(((RoleTO) template).getRoleOwner());
((RoleTO) attributableTO).setEntitlements(((RoleTO) template).getEntitlements());
((RoleTO) attributableTO).setAccountPolicy(((RoleTO) template).getAccountPolicy());
((RoleTO) attributableTO).setPasswordPolicy(((RoleTO) template).getPasswordPolicy());
((RoleTO) attributableTO).setInheritOwner(((RoleTO) template).isInheritOwner());
((RoleTO) attributableTO).setInheritAttributes(((RoleTO) template).isInheritAttributes());
((RoleTO) attributableTO).setInheritDerivedAttributes(((RoleTO) template).isInheritDerivedAttributes());
((RoleTO) attributableTO).setInheritVirtualAttributes(((RoleTO) template).isInheritVirtualAttributes());
((RoleTO) attributableTO).setInheritPasswordPolicy(((RoleTO) template).isInheritPasswordPolicy());
((RoleTO) attributableTO).setInheritAccountPolicy(((RoleTO) template).isInheritAccountPolicy());
}
fillFromTemplate(attributableTO, template);
for (String resource : template.getResources()) {
attributableTO.addResource(resource);
}
}
return attributableTO;