in dotTrace-server/src/main/java/jetbrains/buildServer/dotTrace/server/HistoryImpl.java [23:63]
public Iterable<HistoryElement> getElements(@NotNull final List<SFinishedBuild> builds) {
final SortedList<SFinishedBuild> sortedBuilds = new SortedList<SFinishedBuild>(new Comparator<SFinishedBuild>() {
@Override
public int compare(final SFinishedBuild o1, final SFinishedBuild o2) {
return o1.getFinishDate().compareTo(o2.getFinishDate());
}
});
sortedBuilds.addAll(builds);
return new Iterable<HistoryElement>() {
@Override
public Iterator<HistoryElement> iterator() {
return new Iterator<HistoryElement>() {
private int index = 0;
@Override
public boolean hasNext() {
return index < sortedBuilds.size();
}
@Override
public HistoryElement next() {
final int curIndex = index++;
return new HistoryElement() {
@Nullable
@Override
public BigDecimal tryGetValue(@NotNull final String key) {
return myStorage.getValues(sortedBuilds.get(curIndex)).get(key);
}
};
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
};
}
};
}