/**
* Represents a range of integers, holding the maximum and
- * minimum values. Values assumed to be >= 0.
+ * minimum values.
*/
public class IntegerRange
{
private int _min = -1, _max = -1;
+ private boolean _foundValues = false;
/**
- * Add a value to the range
- * @param inValue value to add, only positive values considered
+ * Clear for a new range calculation
*/
- public void addValue(int inValue)
+ public void clear()
{
- if (inValue >= 0)
- {
- if (inValue < _min || _min < 0) _min = inValue;
- if (inValue > _max) _max = inValue;
- }
+ _min = -1;
+ _max = -1;
+ _foundValues = false;
}
/**
- * @return true if positive data values were found
+ * Add a value to the range
+ * @param inValue value to add
*/
- public boolean hasData()
+ public void addValue(int inValue)
{
- return (_max >= 0);
+ if (inValue < _min || !_foundValues) {
+ _min = inValue;
+ }
+ if (inValue > _max || !_foundValues) {
+ _max = inValue;
+ }
+ _foundValues = true;
}
+ /**
+ * @return true if any values added to the range
+ */
+ public boolean hasValues() {
+ return _foundValues;
+ }
/**
* @return minimum value, or -1 if none found