code: private boolean increment(List[] lengths, int[] indices, int j, int overrideIndex) {
          if (j == -1)
              return false;
          if (j == overrideIndex) {
              return increment(lengths, indices, j - 1, overrideIndex);
          }
          indices[j]++;
          if (indices[j] >= lengths[j].size()) {
              indices[j] = 0;
              return increment(lengths, indices, j - 1, overrideIndex);
          }
          return true;
      }
docs: TODO: DRY this code up with what's in ChainedAggregatorImpl