public class LimitedCounter extends BasicCounter { static private final int DEFAULT_MINIMUM = 0; static private final int DEFAULT_MAXIMUM = Integer.MAX_VALUE; private int minimumValue; private int maximumValue; public LimitedCounter (int minValue, int maxValue) { super (minValue); minimumValue = minValue; maximumValue = maxValue; } public LimitedCounter () { this (DEFAULT_MINIMUM, DEFAULT_MAXIMUM); } public boolean isAtMinimum () { return this.getCurrentValue() == minimumValue; } public boolean isAtMaximum () { return this.getCurrentValue() == maximumValue; } public int getMaximumValue() { return maximumValue; } public int getMinimumValue() { return minimumValue; } }