Package org.apache.commons.math3.util
Class IntegerSequence.Incrementor
java.lang.Object
org.apache.commons.math3.util.IntegerSequence.Incrementor
- Enclosing class:
IntegerSequence
Utility that increments a counter until a maximum is reached, at
which point, the instance will by default throw a
MaxCountExceededException.
However, the user is able to override this behaviour by defining a
custom callback, in order to e.g.
select which exception must be thrown.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceDefines a method to be called at counter exhaustion. -
Method Summary
Modifier and TypeMethodDescriptionbooleanChecks whether incrementing the counternTimesis allowed.booleancanIncrement(int nTimes) Checks whether incrementing the counter several times is allowed.static IntegerSequence.Incrementorcreate()Factory method that creates a default instance.intgetCount()Gets the current count.intGets the upper limit of the counter.booleanhasNext()voidAdds the increment value to the current iteration count.voidincrement(int nTimes) Performs multiple increments.next()voidremove()Not applicable.Creates a new instance with a given callback.withIncrement(int step) Creates a new instance with a given increment.withMaximalCount(int max) Creates a new instance with a given maximal count.withStart(int start) Creates a new instance with a given initial value.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Iterator
forEachRemaining
-
Method Details
-
create
Factory method that creates a default instance. The initial and maximal values are set to 0. For the new instance to be useful, the maximal count must be set by callingwithMaximalCount.- Returns:
- an new instance.
-
withStart
Creates a new instance with a given initial value. The counter is reset to the initial value.- Parameters:
start- Initial value of the counter.- Returns:
- a new instance.
-
withMaximalCount
Creates a new instance with a given maximal count. The counter is reset to the initial value.- Parameters:
max- Maximal count.- Returns:
- a new instance.
-
withIncrement
Creates a new instance with a given increment. The counter is reset to the initial value.- Parameters:
step- Increment.- Returns:
- a new instance.
-
withCallback
public IntegerSequence.Incrementor withCallback(IntegerSequence.Incrementor.MaxCountExceededCallback cb) Creates a new instance with a given callback. The counter is reset to the initial value.- Parameters:
cb- Callback to be called at counter exhaustion.- Returns:
- a new instance.
-
getMaximalCount
public int getMaximalCount()Gets the upper limit of the counter.- Returns:
- the counter upper limit.
-
getCount
public int getCount()Gets the current count.- Returns:
- the current count.
-
canIncrement
public boolean canIncrement()Checks whether incrementing the counternTimesis allowed.- Returns:
falseif callingincrement()will trigger aMaxCountExceededException,trueotherwise.
-
canIncrement
public boolean canIncrement(int nTimes) Checks whether incrementing the counter several times is allowed.- Parameters:
nTimes- Number of increments.- Returns:
falseif callingincrement(nTimes)would call thecallbacktrueotherwise.
-
increment
Performs multiple increments.- Parameters:
nTimes- Number of increments.- Throws:
MaxCountExceededException- at counter exhaustion.NotStrictlyPositiveException- ifnTimes <= 0.- See Also:
-
increment
Adds the increment value to the current iteration count. At counter exhaustion, this method will call thetriggermethod of the callback object passed to thewithCallback(MaxCountExceededCallback)method. If not explicitly set, a default callback is used that will throw aMaxCountExceededException.- Throws:
MaxCountExceededException- at counter exhaustion, unless a customcallbackhas been set.- See Also:
-
hasNext
public boolean hasNext() -
next
-
remove
public void remove()Not applicable.- Specified by:
removein interfaceIterator<Integer>- Throws:
MathUnsupportedOperationException
-