final ControlFlowNode createConnectedEndNode(final Statement statement, final ControlFlowNode from) { final ControlFlowNode newNode = ControlFlowGraphBuilder.this.createEndNode(statement); connect(from, newNode); return newNode; }
protected ControlFlowNode createNode( final Statement previousStatement, final Statement nextStatement, final ControlFlowNodeType type) { return new ControlFlowNode(previousStatement, nextStatement, type); }
@Override public boolean test(final ControlFlowNode n) { return n.getType() == ControlFlowNodeType.LoopCondition; } }
final ControlFlowEdge connect(final ControlFlowNode from, final ControlFlowNode to, final ControlFlowEdgeType type) { final ControlFlowEdge edge = ControlFlowGraphBuilder.this.createEdge(from, to, type); from.getOutgoing().add(edge); to.getIncoming().add(edge); return edge; }
final ControlFlowNode handleEmbeddedStatement(final Statement embeddedStatement, final ControlFlowNode source) { if (embeddedStatement == null || embeddedStatement.isNull()) { return source; } final ControlFlowNode bodyStart = createStartNode(embeddedStatement); if (source != null) { connect(source, bodyStart); } return embeddedStatement.acceptVisitor(this, bodyStart); }
@Override public ControlFlowNode visitEmptyStatement(final EmptyStatement node, final ControlFlowNode data) { return createConnectedEndNode(node, data); }
@Override public ControlFlowNode visitReturnStatement(final ReturnStatement node, final ControlFlowNode data) { return createEndNode(node); }
final ControlFlowEdge connect(final ControlFlowNode from, final ControlFlowNode to, final ControlFlowEdgeType type) { final ControlFlowEdge edge = ControlFlowGraphBuilder.this.createEdge(from, to, type); from.getOutgoing().add(edge); to.getIncoming().add(edge); return edge; }
final ControlFlowNode createConnectedEndNode(final Statement statement, final ControlFlowNode from) { final ControlFlowNode newNode = ControlFlowGraphBuilder.this.createEndNode(statement); connect(from, newNode); return newNode; }
final ControlFlowNode handleEmbeddedStatement(final Statement embeddedStatement, final ControlFlowNode source) { if (embeddedStatement == null || embeddedStatement.isNull()) { return source; } final ControlFlowNode bodyStart = createStartNode(embeddedStatement); if (source != null) { connect(source, bodyStart); } return embeddedStatement.acceptVisitor(this, bodyStart); }
@Override public ControlFlowNode visitVariableDeclaration(final VariableDeclarationStatement node, final ControlFlowNode data) { return createConnectedEndNode(node, data); }
protected ControlFlowNode createNode( final Statement previousStatement, final Statement nextStatement, final ControlFlowNodeType type) { return new ControlFlowNode(previousStatement, nextStatement, type); }
@Override public boolean test(final ControlFlowNode n) { return n.getType() == ControlFlowNodeType.LoopCondition; } }
final ControlFlowNode createConnectedEndNode(final Statement statement, final ControlFlowNode from) { final ControlFlowNode newNode = ControlFlowGraphBuilder.this.createEndNode(statement); connect(from, newNode); return newNode; }
@Override public ControlFlowNode visitExpressionStatement(final ExpressionStatement node, final ControlFlowNode data) { return createConnectedEndNode(node, data); }
protected ControlFlowNode createNode( final Statement previousStatement, final Statement nextStatement, final ControlFlowNodeType type) { return new ControlFlowNode(previousStatement, nextStatement, type); }
@Override public ControlFlowNode visitAssertStatement(final AssertStatement node, final ControlFlowNode data) { return createConnectedEndNode(node, data); }
@Override public ControlFlowNode visitExpressionStatement(final ExpressionStatement node, final ControlFlowNode data) { return createConnectedEndNode(node, data); }
@Override public ControlFlowNode visitAssertStatement(final AssertStatement node, final ControlFlowNode data) { return createConnectedEndNode(node, data); }
@Override public ControlFlowNode visitEmptyStatement(final EmptyStatement node, final ControlFlowNode data) { return createConnectedEndNode(node, data); }