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;