public boolean hasNext() {
            // There is a next bucket iff. there is a bucket no earlier than the cursor which
            // is contained in the bucket space, and is also 0 modulo our sliceId; or if we're
            // not yet properly initialised, with a real distribution bit count, we ignore this.
            long nextBucket = progressToken.getBucketCursor();
            if (distributionBitCount != 1) {
                nextBucket += Math.floorMod(sliceId - nextBucket, slices);
            }
            return nextBucket < (1L << distributionBitCount);
        }
Ensure that a given <code>ProgressToken</code> instance only has
buckets pending that have a used-bits count of that of the
<code>targetDistCits</code>. This is done by splitting or merging
all inconsistent buckets until the desired state is reached.

Time complexity is approx <i>O(4bn)</i> where <i>b</i> is the maximum
delta of bits to change anywhere in the set of pending and <i>n</i>
is the number of pending. This includes the time spent making shallow
map copies.

@param targetDistBits The desired distribution bit count of the buckets
documentapi/src/main/java/com/yahoo/documentapi/VisitorIterator.java