code: public AtomicValue<Integer>       next() throws Exception
      {
          MutableAtomicValue<Integer> result = new MutableAtomicValue<Integer>(0, 0);
  
          if ( currentValue == null )
          {
              currentValue = number.add(cacheFactor);
              if ( !currentValue.succeeded() )
              {
                  currentValue = null;
                  result.succeeded = false;
                  return result;
              }
              currentIndex = 0;
          }
  
          result.succeeded = true;
          result.preValue = currentValue.preValue() + currentIndex;
          result.postValue = result.preValue + 1;
  
          if ( ++currentIndex >= cacheFactor )
          {
              currentValue = null;
          }
  
          return result;
      }
docs: Returns the next value (incrementing by 1). If a new chunk of numbers is needed, it is
  requested from the number
  
  @return next increment
  @throws Exception errors