litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.sequences; import java.util.*; public final class SequenceBlockImpl extends SequenceBlock { public static final SequenceBlock INITIAL = new SequenceBlockImpl( 1, 1 ); private long mNextValue; private long mCurBlockEndExclusive; public SequenceBlockImpl( long pNextValue, long pCurBlockEndExclusive ) { mNextValue = pNextValue; mCurBlockEndExclusive = pCurBlockEndExclusive; } public long getCurBlockEndExclusive() { return mCurBlockEndExclusive; } public long available() { return mCurBlockEndExclusive - mNextValue; } public boolean hasMore() { return mCurBlockEndExclusive > mNextValue; } public long next() throws NoSuchElementException { if ( hasMore() ) { return mNextValue++; } throw new NoSuchElementException( "SequenceBlock Exhausted" ); } protected Long peekNext() { return !hasMore() ? null : mNextValue; } } |