public UpdateProgress computeUpdateProgress() {
   UpdateProgress result = new UpdateProgress();
   for (UpdateProgress updateProgress : domainToUpdateProgress.values()) {
     result.aggregate(updateProgress);
   }
   return result;
 }
 public void add(Domain domain, boolean isUpToDate) {
   UpdateProgress updateProgress = getUpdateProgress(domain);
   // Compute counts
   updateProgress.numPartitions += 1;
   if (isUpToDate) {
     updateProgress.numPartitionsUpToDate += 1;
   }
 }
 public void aggregate(UpdateProgressAggregator other) {
   for (Map.Entry<Domain, UpdateProgress> entry : other.domainToUpdateProgress.entrySet()) {
     UpdateProgress updateProgress = getUpdateProgress(entry.getKey());
     updateProgress.aggregate(entry.getValue());
   }
 }