if (preparedAttribute != null && preparedAttribute.getKey() != null) {
accountId = preparedAttribute.getKey();
}
if (preparedAttribute != null && preparedAttribute.getValue() != null) {
Attribute alreadyAdded = AttributeUtil.find(preparedAttribute.getValue().getName(), attributes);
if (alreadyAdded == null) {
attributes.add(preparedAttribute.getValue());
} else {
attributes.remove(alreadyAdded);
Set<Object> values = new HashSet<Object>(alreadyAdded.getValue());
values.addAll(preparedAttribute.getValue().getValue());
attributes.add(AttributeBuilder.build(preparedAttribute.getValue().getName(), values));
}
}
} catch (Exception e) {
LOG.debug("Attribute '{}' processing failed", mapping.getIntAttrName(), e);
}
}
final Attribute accountIdExtAttr =
AttributeUtil.find(attrUtil.getAccountIdItem(resource).getExtAttrName(), attributes);
if (accountIdExtAttr != null) {
attributes.remove(accountIdExtAttr);
attributes.add(AttributeBuilder.build(attrUtil.getAccountIdItem(resource).getExtAttrName(), accountId));
}
attributes.add(MappingUtil.evaluateNAME(subject, resource, accountId));
if (enable != null) {
attributes.add(AttributeBuilder.buildEnabled(enable));
}
if (!changePwd) {
Attribute pwdAttr = AttributeUtil.find(OperationalAttributes.PASSWORD_NAME, attributes);
if (pwdAttr != null) {
attributes.remove(pwdAttr);
}
}