code: public T getValue ()
      {
          // if the value is still around and it's expired, clear it
          if (_value != null && System.currentTimeMillis() >= _expires) {
              _value = null;
          }
          // then return the value (which may be cleared to null by now)
          return _value;
      }
docs: Returns the value with which we were created or null if the value has
  expired.