public List getCurrScopeDpndntItrsBasedOnSingleIndpndntItr(RuntimeIterator rIter) {
    List<RuntimeIterator> list = new ArrayList<>();
    list.add(rIter);
    for (RuntimeIterator iteratorInCurrentScope : currentScope().getIterators()) {
      Set<RuntimeIterator> itrSet =
          itrDefToIndpndtRuntimeItrMap.get(iteratorInCurrentScope.getCmpIteratorDefn());
      if (rIter != iteratorInCurrentScope && itrSet.size() == 1
          && itrSet.iterator().next() == rIter) {
        list.add(iteratorInCurrentScope);
      }
    }
    return list;
  }
This function returns a List of RuntimeIterators which have ultimate dependency on the Single
Independent Iterator which is passed as a parameter to the function. For correct usage it is
necessary that the RuntimeIterator passed is independent. If there are no dependent Iterators
then the list will just contain one element which will be the RuntimeIterator passed as
argument . Also the self independent Runtime Iterator present in the scope ( that is the
RuntimeIterator same as the independent iterator passed as argument) is added at start of the
list. If an iterator is dependent on more than one independent iterator, it is not added to the
List
<p>
TODO: If we are storing a single Iterator instead of Set , in the itrDefToIndpndtRuntimeItrMap
, we need to take care of this function.

@param rIter Independent RuntimeIterator on which dependent iterators of current scope need to
       identified
@return List containing the independent Runtime Iterator & its dependent iterators
geode-core/src/main/java/org/apache/geode/cache/query/internal/ExecutionContext.java