private void doNestedIterationsForIndexInit(int level, List runtimeIterators)
        throws TypeMismatchException, FunctionDomainException,
        NameResolutionException, QueryInvocationTargetException, IMQException {
      if (level == 1) {
        ++initEntriesUpdated;
      }
      if (level == iteratorSize) {
        applyProjectionForIndexInit(runtimeIterators);
      } else {
        RuntimeIterator rIter = (RuntimeIterator) runtimeIterators.get(level);
        Collection collection = rIter.evaluateCollection(initContext);
        if (collection == null) {
          return;
        }
        for (Object aCollection : collection) {
          rIter.setCurrent(aCollection);
          doNestedIterationsForIndexInit(level + 1, runtimeIterators);
        }
      }
    }
This function is used for creating Index data at the start
geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java