78  DAGParser(
const std::string &appName, std::vector<Node> &&nodes);
 
   80  DAGParser(
const std::string &appName, std::vector<Node> &&nodeList,
 
   81            std::optional<nlohmann::json> json);
 
   83  static DAGParser parseFromFile(
const std::string &filename);
 
   85  static DAGParser fromJson(nlohmann::json json);
 
   87  const std::vector<Node> &getNodes();
 
   89  const std::string &getApplicationName();
 
   91  const Node &findNodeByName(
const std::string &nodeName);
 
   93  const Edge &findEdgeByName(
const std::string &edgeId);
 
   95  std::vector<std::pair<const Node &, const Edge &>>
 
   96  findUpstreamEdges(
const std::string &taskId);
 
   98  std::vector<std::pair<const Node &, const Edge &>>
 
   99  findUpstreamEdges(
const Node &node);
 
  101  std::optional<nlohmann::json> getRawDag();
 
  104  std::string m_applicationName;
 
  105  std::vector<Node> m_nodes;
 
  107  std::optional<nlohmann::json> m_json;