Loading src/main/java/tfm/graphs/CFGGraph.java +4 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ import java.util.Comparator; import java.util.function.Function; import java.util.stream.Collectors; public abstract class CFGGraph extends Graph<CFGNode> { public class CFGGraph extends Graph<CFGNode> { public CFGGraph() { super(); Loading @@ -28,7 +28,9 @@ public abstract class CFGGraph extends Graph<CFGNode> { return vertex; } protected abstract String getRootNodeData(); protected String getRootNodeData() { return "Start"; } @SuppressWarnings("unchecked") public void addControlFlowEdge(CFGNode from, CFGNode to) { Loading src/main/java/tfm/graphs/Graph.java +2 −2 Original line number Diff line number Diff line Loading @@ -87,9 +87,9 @@ public abstract class Graph<NodeType extends Node> extends edg.graphlib.Graph<St public abstract NodeType addNode(String instruction, Statement statement); public Optional<NodeType> findNodeByStatement(Statement statement) { public <ASTNode extends com.github.javaparser.ast.Node> Optional<NodeType> findNodeByASTNode(ASTNode astNode) { return getNodes().stream() .filter(node -> Objects.equals(node.getStatement(), statement)) .filter(node -> Objects.equals(node.getAstNode(), astNode)) .findFirst(); } Loading src/main/java/tfm/graphs/PDGGraph.java +4 −2 Original line number Diff line number Diff line Loading @@ -20,13 +20,15 @@ import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public abstract class PDGGraph extends Graph<PDGNode> { public class PDGGraph extends Graph<PDGNode> { public PDGGraph() { setRootVertex(new PDGNode(getNextVertexId(), getRootNodeData(), new EmptyStmt())); } protected abstract String getRootNodeData(); protected String getRootNodeData() { return "Entry"; } public <N extends Node> PDGNode addNode(N node) { PDGNode vertex = new PDGNode(getNextVertexId(), node); Loading src/main/java/tfm/graphs/SDGGraph.java 0 → 100644 +17 −0 Original line number Diff line number Diff line package tfm.graphs; import com.github.javaparser.ast.stmt.Statement; import tfm.nodes.SDGNode; public class SDGGraph extends Graph<SDGNode> { @Override public SDGNode addNode(String instruction, Statement statement) { return null; } @Override public String toGraphvizRepresentation() { return null; } } src/main/java/tfm/nodes/CFGNode.java +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import tfm.graphs.Graph; import java.util.stream.Collectors; public class CFGNode extends Node { public class CFGNode extends Node<Statement> { public <N extends Node> CFGNode(N node) { super(node); Loading Loading
src/main/java/tfm/graphs/CFGGraph.java +4 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ import java.util.Comparator; import java.util.function.Function; import java.util.stream.Collectors; public abstract class CFGGraph extends Graph<CFGNode> { public class CFGGraph extends Graph<CFGNode> { public CFGGraph() { super(); Loading @@ -28,7 +28,9 @@ public abstract class CFGGraph extends Graph<CFGNode> { return vertex; } protected abstract String getRootNodeData(); protected String getRootNodeData() { return "Start"; } @SuppressWarnings("unchecked") public void addControlFlowEdge(CFGNode from, CFGNode to) { Loading
src/main/java/tfm/graphs/Graph.java +2 −2 Original line number Diff line number Diff line Loading @@ -87,9 +87,9 @@ public abstract class Graph<NodeType extends Node> extends edg.graphlib.Graph<St public abstract NodeType addNode(String instruction, Statement statement); public Optional<NodeType> findNodeByStatement(Statement statement) { public <ASTNode extends com.github.javaparser.ast.Node> Optional<NodeType> findNodeByASTNode(ASTNode astNode) { return getNodes().stream() .filter(node -> Objects.equals(node.getStatement(), statement)) .filter(node -> Objects.equals(node.getAstNode(), astNode)) .findFirst(); } Loading
src/main/java/tfm/graphs/PDGGraph.java +4 −2 Original line number Diff line number Diff line Loading @@ -20,13 +20,15 @@ import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public abstract class PDGGraph extends Graph<PDGNode> { public class PDGGraph extends Graph<PDGNode> { public PDGGraph() { setRootVertex(new PDGNode(getNextVertexId(), getRootNodeData(), new EmptyStmt())); } protected abstract String getRootNodeData(); protected String getRootNodeData() { return "Entry"; } public <N extends Node> PDGNode addNode(N node) { PDGNode vertex = new PDGNode(getNextVertexId(), node); Loading
src/main/java/tfm/graphs/SDGGraph.java 0 → 100644 +17 −0 Original line number Diff line number Diff line package tfm.graphs; import com.github.javaparser.ast.stmt.Statement; import tfm.nodes.SDGNode; public class SDGGraph extends Graph<SDGNode> { @Override public SDGNode addNode(String instruction, Statement statement) { return null; } @Override public String toGraphvizRepresentation() { return null; } }
src/main/java/tfm/nodes/CFGNode.java +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import tfm.graphs.Graph; import java.util.stream.Collectors; public class CFGNode extends Node { public class CFGNode extends Node<Statement> { public <N extends Node> CFGNode(N node) { super(node); Loading