code: @Override
    public void triggered (final ICalendar calendar)
    {
      m_nTimesTriggered++;
      m_aPreviousFireTime = m_aNextFireTime;
      m_aNextFireTime = getFireTimeAfter (m_aNextFireTime);
  
      while (m_aNextFireTime != null && calendar != null && !calendar.isTimeIncluded (m_aNextFireTime.getTime ()))
      {
  
        m_aNextFireTime = getFireTimeAfter (m_aNextFireTime);
  
        if (m_aNextFireTime == null)
          break;
  
        // avoid infinite loop
        final Calendar c = PDTFactory.createCalendar ();
        c.setTime (m_aNextFireTime);
        if (c.get (Calendar.YEAR) > CQuartz.MAX_YEAR)
        {
          m_aNextFireTime = null;
        }
      }
    }
docs: <p>
  Called when the <code>{@link IScheduler}</code> has decided to 'fire' the
  trigger (execute the associated <code>Job</code>), in order to give the
  <code>Trigger</code> a chance to update itself for its next triggering (if
  any).
  </p>
  
  @see #executionComplete(IJobExecutionContext, JobExecutionException)