boolean () { if (hasNextCache != null) { return hasNextCache.booleanValue(); } while (!groupIterator.hasNext() && valuesIterator.hasNext()) { groupIterator = createValueIterator(valuesIterator.next()); } return hasNextCache = groupIterator.hasNext(); }