code: @Override
    public Date getFinalFireTime ()
    {
      if (m_nRepeatCount == 0)
      {
        return m_aStartTime;
      }
  
      if (m_nRepeatCount == REPEAT_INDEFINITELY)
      {
        return (getEndTime () == null) ? null : getFireTimeBefore (getEndTime ());
      }
  
      final long lastTrigger = m_aStartTime.getTime () + (m_nRepeatCount * m_nRepeatInterval);
  
      if ((getEndTime () == null) || (lastTrigger < getEndTime ().getTime ()))
      {
        return new Date (lastTrigger);
      }
      return getFireTimeBefore (getEndTime ());
    }
docs: <p>
  Returns the final time at which the <code>SimpleTrigger</code> will fire,
  if repeatCount is REPEAT_INDEFINITELY, null will be returned.
  </p>
  <p>
  Note that the return time may be in the past.
  </p>