code: private void fetchNext() {
          if (null != this.pendingUtc_ || this.done_) {
              return;
          }
  
          DateValue dUtc = this.generateInstance();
  
          // check the exit condition
          if (null != dUtc && this.condition_.apply(dUtc)) {
              this.pendingUtc_ = dUtc;
              this.yearGenerator_.workDone();
          } else {
              this.done_ = true;
          }
      }
docs: calculates and stored the next date in this recurrence.