docs: public void setFirstFireTimeAfter() {
          if ( getStartTime().after( this.nextFireTime ) ) {
              this.nextFireTime = new Date( getStartTime().getTime() - 1000l );
          }
  
          if ( getEndTime() != null && (this.nextFireTime.compareTo( getEndTime() ) >= 0) ) {
              this.nextFireTime = null;
          }
  
          Date pot = getTimeAfter( this.nextFireTime );
          if ( getEndTime() != null && pot != null && pot.after( getEndTime() ) ) {
              this.nextFireTime = null;
          } else {
              this.nextFireTime = pot;
          }
      }