in nuget-feed/src/jetbrains/buildServer/nuget/feed/server/olingo/processor/NuGetPackagesProcessor.java [596:626]
private <T> void sort(final List<T> data, final OrderByExpression orderBy) {
Collections.sort(data, (entity1, entity2) -> {
try {
int result = 0;
for (final OrderExpression expression : orderBy.getOrders()) {
final String first = myEvaluator.evaluateExpression(entity1, expression.getExpression());
final String second = myEvaluator.evaluateExpression(entity2, expression.getExpression());
if (first != null && second != null) {
result = first.compareTo(second);
} else if (first == null && second != null) {
result = 1;
} else if (first != null) {
result = -1;
}
if (expression.getSortOrder() == SortOrder.desc) {
result = -result;
}
if (result != 0) {
break;
}
}
return result;
} catch (final ODataException e) {
LOG.infoAndDebugDetails("Unable to order collection", e);
return 0;
}
});
}