// 1. fill with data from connector object
for (SchemaMapping mapping : syncTask.getResource().getMappings()) {
Attribute attribute = obj.getAttributeByName(SchemaMappingUtil.getExtAttrName(mapping));
AttributeTO attributeTO;
switch (mapping.getIntMappingType()) {
case SyncopeUserId:
break;
case Password:
if (attribute != null && attribute.getValue() != null && !attribute.getValue().isEmpty()) {
userTO.setPassword(getPassword(attribute.getValue().get(0)));
}
break;
case Username:
userTO.setUsername(attribute == null || attribute.getValue().isEmpty()
? null
: attribute.getValue().get(0).toString());
break;
case UserSchema:
attributeTO = new AttributeTO();
attributeTO.setSchema(mapping.getIntAttrName());
for (Object value : attribute == null || attribute.getValue() == null
? Collections.EMPTY_LIST
: attribute.getValue()) {
attributeTO.addValue(value.toString());
}
userTO.addAttribute(attributeTO);
break;
case UserDerivedSchema:
attributeTO = new AttributeTO();
attributeTO.setSchema(mapping.getIntAttrName());
userTO.addDerivedAttribute(attributeTO);
break;
case UserVirtualSchema:
attributeTO = new AttributeTO();
attributeTO.setSchema(mapping.getIntAttrName());
for (Object value : attribute == null || attribute.getValue() == null
? Collections.EMPTY_LIST
: attribute.getValue()) {
attributeTO.addValue(value.toString());
}
userTO.addVirtualAttribute(attributeTO);
break;