code: public ApplicationReportModel getMainApplicationReportForFile(FileModel fileModel)
      {
          ProjectModel rootProjectModel = fileModel.getProjectModel();
          if (rootProjectModel == null)
          {
              return null;
          }
          else
          {
              rootProjectModel = rootProjectModel.getRootProjectModel();
          }
          GraphTraversal<Vertex, Vertex> pipe = new GraphTraversalSource(getGraphContext().getGraph()).V(rootProjectModel.getElement());
          pipe.in(ApplicationReportModel.REPORT_TO_PROJECT_MODEL);
          pipe.has(ApplicationReportModel.MAIN_APPLICATION_REPORT, true);
  
          ApplicationReportModel mainAppReport = null;
          for (Vertex v : pipe.toList())
          {
              ApplicationReportModel appReport = frame(v);
  
              if(mainAppReport != null) {
                  LOG.warning("There are multiple ApplicationReportModels for a single file " + fileModel.getFilePath() +". This may cause some broken"
                              + "links in the report file");
              }
              mainAppReport = appReport;
          }
          return mainAppReport;
      }
docs: Takes the first {@link ApplicationReportModel} that has set boolean value {@link ApplicationReportModel#MAIN_APPLICATION_REPORT} to true and whose
  projectModel is the same as the rootProjectModel of the given file
  @param fileModel A FileModel for which we are looking for the main application report to link to.
  @return