Source:
public void setRole(Role role) throws CharonException, BadRequestException { SimpleAttribute valueSimpleAttribute = null; SimpleAttribute displaySimpleAttribute; SimpleAttribute referenceSimpleAttribute; String reference = role.getLocation(); String value = role.getId(); String display = role.getDisplayName(); ComplexAttribute complexAttribute = new ComplexAttribute(); if (value != null) { valueSimpleAttribute = new SimpleAttribute(SCIMConstants.CommonSchemaConstants.VALUE, value); valueSimpleAttribute = (SimpleAttribute) DefaultAttributeFactory .createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_VALUE, valueSimpleAttribute); complexAttribute.setSubAttribute(valueSimpleAttribute); } if (reference != null) { referenceSimpleAttribute = new SimpleAttribute(SCIMConstants.CommonSchemaConstants.REF, reference); DefaultAttributeFactory.createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_REF, referenceSimpleAttribute); complexAttribute.setSubAttribute(referenceSimpleAttribute); } if (display != null) { displaySimpleAttribute = new SimpleAttribute(SCIMConstants.CommonSchemaConstants.DISPLAY, display); displaySimpleAttribute = (SimpleAttribute) DefaultAttributeFactory .createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_DISPLAY, displaySimpleAttribute); complexAttribute.setSubAttribute(displaySimpleAttribute); } if (!complexAttribute.getSubAttributesList().isEmpty()) { Object typeVal = SCIMConstants.DEFAULT; Object valueVal = SCIMConstants.DEFAULT; if (valueSimpleAttribute != null && valueSimpleAttribute.getValue() != null) { valueVal = valueSimpleAttribute.getValue(); } String complexAttributeName = SCIMConstants.GroupSchemaConstants.ROLES + "_" + valueVal + "_" + typeVal; complexAttribute.setName(complexAttributeName); DefaultAttributeFactory .createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_SCHEMA, complexAttribute); setRole(complexAttribute); } }

Target:
public void setRole(Role role) throws CharonException, BadRequestException { SimpleAttribute valueSimpleAttribute = null; SimpleAttribute displaySimpleAttribute; SimpleAttribute referenceSimpleAttribute; String reference = role.getLocation(); String value = role.getId(); String display = role.getDisplayName(); ComplexAttribute complexAttribute = new ComplexAttribute(); if (StringUtils.isNotBlank(value)) { valueSimpleAttribute = new SimpleAttribute(SCIMConstants.CommonSchemaConstants.VALUE, value); valueSimpleAttribute = (SimpleAttribute) DefaultAttributeFactory .createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_VALUE, valueSimpleAttribute); complexAttribute.setSubAttribute(valueSimpleAttribute); } if (StringUtils.isNotBlank(reference)) { referenceSimpleAttribute = new SimpleAttribute(SCIMConstants.CommonSchemaConstants.REF, reference); DefaultAttributeFactory.createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_REF, referenceSimpleAttribute); complexAttribute.setSubAttribute(referenceSimpleAttribute); } if (StringUtils.isNotBlank(display)) { displaySimpleAttribute = new SimpleAttribute(SCIMConstants.CommonSchemaConstants.DISPLAY, display); displaySimpleAttribute = (SimpleAttribute) DefaultAttributeFactory .createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_DISPLAY, displaySimpleAttribute); complexAttribute.setSubAttribute(displaySimpleAttribute); } if (!complexAttribute.getSubAttributesList().isEmpty()) { Object typeVal = SCIMConstants.DEFAULT; Object valueVal = SCIMConstants.DEFAULT; if (valueSimpleAttribute != null && valueSimpleAttribute.getValue() != null) { valueVal = valueSimpleAttribute.getValue(); } String complexAttributeName = SCIMConstants.GroupSchemaConstants.ROLES + "_" + valueVal + "_" + typeVal; complexAttribute.setName(complexAttributeName); DefaultAttributeFactory .createAttribute(SCIMSchemaDefinitions.SCIMGroupSchemaDefinition.ROLES_SCHEMA, complexAttribute); setRole(complexAttribute); } }