/**
   * @param experimentId
   * @param sbName
   * @return
   */
  public ResultReport RetrieveResult(int experimentId, String sbName) {
    final String methodName = "RetrieveResult";
    Logfile.WriteCalled(
        logLevel,
        STR_ClassName,
        methodName,
        String.format(STRLOG_ExperimentIdSbName_arg2, experimentId, sbName));

    ResultReport resultReport;

    try {
      /*
       * Try getting the result of the completed experiment
       */
      resultReport =
          this.labManagement.getExperimentResultsDB().RetrieveResultReport(experimentId, sbName);
      if (resultReport.getStatusCode() == StatusCodes.Unknown) {
        /*
         * No results found for the experiment, check the queue to see if it ever existed
         */
        ExperimentQueueInfo experimentQueueInfo =
            this.labManagement.getExperimentQueueDB().RetrieveByExperimentId(experimentId, sbName);
        if (experimentQueueInfo != null) {
          resultReport.setStatusCode(experimentQueueInfo.getStatusCode());
        }
      }
    } catch (Exception ex) {
      Logfile.WriteError(ex.toString());
      resultReport = new ResultReport(StatusCodes.Unknown, ex.toString());
    }

    Logfile.WriteCompleted(
        logLevel,
        STR_ClassName,
        methodName,
        String.format(STRLOG_StatusCode_arg, resultReport.getStatusCode()));

    return resultReport;
  }