uk.ac.starlink.util
Class ValueWatcher

java.lang.Object
  extended by uk.ac.starlink.util.ValueWatcher

public class ValueWatcher
extends java.lang.Object

Looks out for an unused value in a sequence of submitted numbers. This can be used to identify a suitable 'magic' representation for a bad value.

Since:
22 Jun 2006

Constructor Summary
ValueWatcher(long loBound, long hiBound)
          Constructs a ValueWatcher which will look out for values in the range covered by loBound and hiBound inclusive.
 
Method Summary
 java.lang.Long getUnused()
          Returns a value in the range loBound..hiBound which has never been sumitted to useValue(long).
 void useValue(long val)
          Takes note of a value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ValueWatcher

public ValueWatcher(long loBound,
                    long hiBound)
Constructs a ValueWatcher which will look out for values in the range covered by loBound and hiBound inclusive. These shouldn't be arbitrarily far apart - storage of up to about one bit per value in the range will be required.

Parameters:
loBound - lower bound to watch for (inclusive)
hiBound - upper bound to watch for (inclusive)
Method Detail

useValue

public void useValue(long val)
Takes note of a value. val will never subsequently be returned from getUnused().

Parameters:
val - value to note

getUnused

public java.lang.Long getUnused()
Returns a value in the range loBound..hiBound which has never been sumitted to useValue(long). If there is no such value, returns null.

Returns:
unused value in range

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.