code: @Override
      public List<WSStepThreadExecutionAggregate> getStepExecutionAggregatesFromJobExecutionId(
                                                                                               long jobExecutionId) throws NoSuchJobExecutionException {
          // Optimize for programming ease rather than a single trip to the database.
          // We might have to revisit.
          List<WSStepThreadExecutionAggregate> retVal = new ArrayList<WSStepThreadExecutionAggregate>();
  
          //sorted by start time
          List<StepExecution> topLevelStepExecutions = getStepExecutionsTopLevelFromJobExecutionId(jobExecutionId);
          for (StepExecution stepExec : topLevelStepExecutions) {
              retVal.add(getStepExecutionAggregate(stepExec.getStepExecutionId()));
          }
          return retVal;
      }
docs: {@inheritDoc}