@Override public ControlFlowNode visitReturnStatement(final ReturnStatement node, final ControlFlowNode data) { return createEndNode(node); }
@Override public ControlFlowNode visitReturnStatement(final ReturnStatement node, final ControlFlowNode data) { return createEndNode(node); }
@Override public ControlFlowNode visitThrowStatement(final ThrowStatement node, final ControlFlowNode data) { return createEndNode(node); }
@Override public ControlFlowNode visitThrowStatement(final ThrowStatement node, final ControlFlowNode data) { return createEndNode(node); }
@Override public ControlFlowNode visitThrowStatement(final ThrowStatement node, final ControlFlowNode data) { return createEndNode(node); }
@Override public ControlFlowNode visitReturnStatement(final ReturnStatement node, final ControlFlowNode data) { return createEndNode(node); }
protected ControlFlowNode createEndNode(final Statement statement) { return createEndNode(statement, true); }
protected ControlFlowNode createEndNode(final Statement statement) { return createEndNode(statement, true); }
@Override public ControlFlowNode visitGotoStatement(final GotoStatement node, final ControlFlowNode data) { gotoStatements.add(data); return createEndNode(node); }
@Override public ControlFlowNode visitGotoStatement(final GotoStatement node, final ControlFlowNode data) { gotoStatements.add(data); return createEndNode(node); }
@Override public ControlFlowNode visitGotoStatement(final GotoStatement node, final ControlFlowNode data) { gotoStatements.add(data); return createEndNode(node); }
final ControlFlowNode createConnectedEndNode(final Statement statement, final ControlFlowNode from) { final ControlFlowNode newNode = ControlFlowGraphBuilder.this.createEndNode(statement); connect(from, newNode); return newNode; }
final ControlFlowNode createConnectedEndNode(final Statement statement, final ControlFlowNode from) { final ControlFlowNode newNode = ControlFlowGraphBuilder.this.createEndNode(statement); connect(from, newNode); return newNode; }
final ControlFlowNode createConnectedEndNode(final Statement statement, final ControlFlowNode from) { final ControlFlowNode newNode = ControlFlowGraphBuilder.this.createEndNode(statement); connect(from, newNode); return newNode; }
@Override public ControlFlowNode visitContinueStatement(final ContinueStatement node, final ControlFlowNode data) { if (!StringUtilities.isNullOrEmpty(node.getLabel())) { gotoStatements.add(data); return createEndNode(node); } if (!continueTargets.isEmpty()) { connect(data, continueTargets.peek(), ControlFlowEdgeType.Jump); } return createEndNode(node); }
@Override public ControlFlowNode visitBreakStatement(final BreakStatement node, final ControlFlowNode data) { if (!StringUtilities.isNullOrEmpty(node.getLabel())) { gotoStatements.add(data); return createEndNode(node); } if (!breakTargets.isEmpty()) { connect(data, breakTargets.peek(), ControlFlowEdgeType.Jump); } return createEndNode(node); }
@Override public ControlFlowNode visitContinueStatement(final ContinueStatement node, final ControlFlowNode data) { if (!StringUtilities.isNullOrEmpty(node.getLabel())) { gotoStatements.add(data); return createEndNode(node); } if (!continueTargets.isEmpty()) { connect(data, continueTargets.peek(), ControlFlowEdgeType.Jump); } return createEndNode(node); }
@Override public ControlFlowNode visitContinueStatement(final ContinueStatement node, final ControlFlowNode data) { if (!StringUtilities.isNullOrEmpty(node.getLabel())) { gotoStatements.add(data); return createEndNode(node); } if (!continueTargets.isEmpty()) { connect(data, continueTargets.peek(), ControlFlowEdgeType.Jump); } return createEndNode(node); }
@Override public ControlFlowNode visitBreakStatement(final BreakStatement node, final ControlFlowNode data) { if (!StringUtilities.isNullOrEmpty(node.getLabel())) { gotoStatements.add(data); return createEndNode(node); } if (!breakTargets.isEmpty()) { connect(data, breakTargets.peek(), ControlFlowEdgeType.Jump); } return createEndNode(node); }
@Override public ControlFlowNode visitBreakStatement(final BreakStatement node, final ControlFlowNode data) { if (!StringUtilities.isNullOrEmpty(node.getLabel())) { gotoStatements.add(data); return createEndNode(node); } if (!breakTargets.isEmpty()) { connect(data, breakTargets.peek(), ControlFlowEdgeType.Jump); } return createEndNode(node); }