public Iterable getElements()

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();
          }
        };
      }
    };
  }