in scim-core/src/main/java/org/apache/directory/scim/core/repository/UpdateRequest.java [138:162]
private void sortMultiValuedCollections(Object obj1, Object obj2, AttributeContainer ac) throws IllegalArgumentException {
for (Attribute attribute : ac.getAttributes()) {
Schema.AttributeAccessor accessor = attribute.getAccessor();
if (attribute.isMultiValued()) {
@SuppressWarnings("unchecked")
List<Object> collection1 = obj1 != null ? (List<Object>) accessor.get(obj1) : null;
@SuppressWarnings("unchecked")
List<Object> collection2 = obj2 != null ? (List<Object>) accessor.get(obj2) : null;
Set<Object> priorities = findCommonElements(collection1, collection2);
PrioritySortingComparator prioritySortingComparator = new PrioritySortingComparator(priorities);
if (collection1 != null) {
Collections.sort(collection1, prioritySortingComparator);
}
if (collection2 != null) {
Collections.sort(collection2, prioritySortingComparator);
}
} else if (attribute.getType() == Attribute.Type.COMPLEX) {
Object nextObj1 = obj1 != null ? accessor.get(obj1) : null;
Object nextObj2 = obj2 != null ? accessor.get(obj2) : null;
sortMultiValuedCollections(nextObj1, nextObj2, attribute);
}
}
}