@@ -0,0 +1,2339 @@
+package boa.graphs.cdg;%0A%0A%0Aimport boa.graphs.cfg.CFGNode;%0Aimport boa.types.Ast.*;%0A%0Aimport java.util.*;%0A%0Apublic class CDGNode implements Comparable%3CCDGNode%3E %7B%0A%0A    private int id;%0A    private String pid;%0A    private Statement stmt;%0A    private Expression expr;%0A%0A    private Set%3CCDGEdge%3E inEdges = new HashSet%3CCDGEdge%3E();%0A    private Set%3CCDGEdge%3E outEdges = new HashSet%3CCDGEdge%3E();%0A    private List%3CCDGNode%3E successors = new java.util.ArrayList%3CCDGNode%3E();%0A    private List%3CCDGNode%3E predecessors = new java.util.ArrayList%3CCDGNode%3E();%0A%0A    public CDGNode(TreeNode node) %7B%0A        this.id = node.getId();%0A        this.pid = node.getPid();%0A        this.stmt = node.getStmt();%0A        this.expr = node.getExpr();%0A    %7D%0A%0A    public CDGNode(int id) %7B%0A        this.id = id;%0A    %7D%0A%0A    //Setters%0A    public void setId(int id) %7B%0A        this.id = id;%0A    %7D%0A%0A    public void setPid(String pid) %7B%0A        this.pid = pid;%0A    %7D%0A%0A    public void setStmt(Statement stmt) %7B%0A        this.stmt = stmt;%0A    %7D%0A%0A    public void setExpr(Expression expr) %7B%0A        this.expr = expr;%0A    %7D%0A%0A    public void addSuccessor(CDGNode node) %7B%0A        successors.add(node);%0A    %7D%0A%0A    public void addPredecessor(CDGNode node) %7B%0A        predecessors.add(node);%0A    %7D%0A%0A    public void addInEdges(CDGEdge edge) %7B%0A        inEdges.add(edge);%0A    %7D%0A%0A    public void addOutEdges(CDGEdge edge) %7B%0A        inEdges.add(edge);%0A    %7D%0A%0A    //Getters%0A    public int getId() %7B%0A        return id;%0A    %7D%0A%0A    public String getPid() %7B%0A        return pid;%0A    %7D%0A%0A    public Statement getStmt() %7B%0A        return stmt;%0A    %7D%0A%0A    public Expression getExpr() %7B%0A        return expr;%0A    %7D%0A%0A    public Set%3CCDGEdge%3E getInEdges() %7B%0A        return inEdges;%0A    %7D%0A%0A    public Set%3CCDGEdge%3E getOutEdges() %7B%0A        return outEdges;%0A    %7D%0A%0A    public List%3CCDGNode%3E getSuccessors() %7B%0A        return successors;%0A    %7D%0A%0A    public List%3CCDGNode%3E getPredecessors() %7B%0A        return predecessors;%0A    %7D%0A%0A    @Override%0A    public int compareTo(final CDGNode node) %7B%0A        return node.id - this.id;%0A    %7D%0A%0A    @Override%0A    public boolean equals(Object o) %7B%0A        if (this == o) return true;%0A        if (o == null %7C%7C getClass() != o.getClass()) return false;%0A%0A        CDGNode cdgNode = (CDGNode) o;%0A%0A        return id == cdgNode.id;%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return id;%0A    %7D%0A%7D%0A

add node class for CDGs