code: public int getValue (long tickStamp)
      {
          if (_startStamp == 0L) {
              _startStamp = tickStamp;
          }
  
          int dt = (int)(tickStamp - _startStamp);
          if (dt <= 0) {
              return _start;
          } else if (dt >= _duration) {
              return _end;
          } else {
              return computeValue(dt);
          }
      }
docs: Returns the current value given the supplied time stamp. The value
  will be bounded to the originally supplied starting and ending
  values at times 0 (and below) and {@link #_duration} (and above)
  respectively.