code: @Override
    public Date computeFirstFireTime (final ICalendar calendar)
    {
      m_aNextFireTime = getFireTimeAfter (new Date (getStartTime ().getTime () - 1000l));
  
      while (m_aNextFireTime != null && calendar != null && !calendar.isTimeIncluded (m_aNextFireTime.getTime ()))
      {
        m_aNextFireTime = getFireTimeAfter (m_aNextFireTime);
      }
  
      return m_aNextFireTime;
    }
docs: <p>
  Called by the scheduler at the time a <code>Trigger</code> is first added
  to the scheduler, in order to have the <code>Trigger</code> compute its
  first fire time, based on any associated calendar.
  </p>
  <p>
  After this method has been called, <code>getNextFireTime()</code> should
  return a valid answer.
  </p>
  
  @return the first time at which the <code>Trigger</code> will be fired by
  the scheduler, which is also the same value
  <code>getNextFireTime()</code> will return (until after the first
  firing of the <code>Trigger</code>).