@SuppressWarnings("unchecked")
      @Override
      public E next() {
        if (cachedHasNext == null) {
          hasNext();
        }
        cachedHasNext = null;
        Metadata metadata = collectionsMetdata.get(currentIterator);
        E original = iterators[currentIterator].next();
        Object e = PDXUtils.convertPDX(original, isStruct, metadata.getDomainObjectForPdx,
            metadata.getDeserializedObject, metadata.localResults, objectChangedMarker, false);
        if (isStruct) {
          if (objectChangedMarker[0]) {
            return (E) new StructImpl((StructTypeImpl) collectionType.getElementType(),
                (Object[]) e);
          } else {
            return original;
          }
        } else {
          return (E) e;
        }

      }
This is used as a wrapper over all the results of PR which are of non distinct type
geode-core/src/main/java/org/apache/geode/cache/query/internal/CumulativeNonDistinctResults.java