code: public void addFlow(Flow flow) {
  
      // add the flow stats to this app summary
      this.numberRuns++;
      this.jobCount += flow.getJobCount();
      this.mapSlotMillis += flow.getMapSlotMillis();
      this.reduceSlotMillis += flow.getReduceSlotMillis();
      this.totalMaps += flow.getTotalMaps();
      this.totalReduces += flow.getTotalReduces();
      this.mbMillis += flow.getMegabyteMillis();
  
      // add the queue of this flow to the set of queues in this app summary
      this.queues.add(flow.getQueue());
  
      /**  TODO add jobcost once job cost has been added to job details and flow */
  
      // store the latest timestamp seen for this app summary
      // since these are epoch timestamps, a bigger number means more recent
      if ((this.lastRunId == 0L) || (this.lastRunId < flow.getRunId())) {
        this.lastRunId = flow.getRunId();
      }
  
      // store the oldest seen timestamp seen for this app summary
      // since these are epoch timestamps, a smaller number means older run
      if ((this.firstRunId == 0L) || (this.firstRunId > flow.getRunId())) {
        this.firstRunId = flow.getRunId();
      }
  
    }
docs: adds a flow (a run of the app) of the app summary
  @param flow