Class 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
    Author:
    Mark Taylor
    • Constructor Summary

      Constructors 
      Constructor Description
      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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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