code: @Override
    public ValidationReport loadProjectFlow(final Project project, final File projectDir) {
      this.propsList = new ArrayList<>();
      this.flowPropsList = new ArrayList<>();
      this.jobPropsMap = new HashMap<>();
      this.nodeMap = new HashMap<>();
      this.duplicateJobs = new HashSet<>();
      this.nodeDependencies = new HashMap<>();
      this.rootNodes = new HashSet<>();
      this.flowDependencies = new HashMap<>();
  
      // Load all the props files and create the Node objects
      loadProjectFromDir(projectDir.getPath(), projectDir, null);
  
      // Create edges and find missing dependencies
      resolveDependencies();
  
      // Create the flows.
      buildFlowsFromDependencies();
  
      // Resolve embedded flows
      resolveEmbeddedFlows();
  
      FlowLoaderUtils.checkJobProperties(project.getId(), this.props, this.jobPropsMap, this.errors);
  
      return FlowLoaderUtils.generateFlowLoaderReport(this.errors);
  
    }
docs: Loads all project flows from the directory.
  
  @param project The project.
  @param projectDir The directory to load flows from.
  @return the validation report.