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); }
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); }
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 visitDoWhileStatement(final DoWhileStatement node, final ControlFlowNode data) { final ControlFlowNode end = createEndNode(node, false); final ControlFlowNode conditionNode = createSpecialNode(node, ControlFlowNodeType.LoopCondition, false); breakTargets.push(end); continueTargets.push(conditionNode); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); connect(data, bodyStart); final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart); connect(bodyEnd, conditionNode); final Boolean condition = evaluateCondition(node.getCondition()); if (!Boolean.FALSE.equals(condition)) { connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); } if (!Boolean.TRUE.equals(condition)) { connect(conditionNode, end, ControlFlowEdgeType.ConditionFalse); } breakTargets.pop(); continueTargets.pop(); nodes.add(conditionNode); nodes.add(end); return end; }
@Override public ControlFlowNode visitWhileStatement(final WhileStatement node, final ControlFlowNode data) { final ControlFlowNode end = createEndNode(node, false); final ControlFlowNode conditionNode = createSpecialNode(node, ControlFlowNodeType.LoopCondition); breakTargets.push(end); continueTargets.push(conditionNode); connect(data, conditionNode); final Boolean condition = evaluateCondition(node.getCondition()); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); if (!Boolean.FALSE.equals(condition)) { connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); } final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart); connect(bodyEnd, conditionNode); if (!Boolean.TRUE.equals(condition)) { connect(conditionNode, end, ControlFlowEdgeType.ConditionFalse); } breakTargets.pop(); continueTargets.pop(); nodes.add(end); return end; }
final ControlFlowNode handleStatementList(final AstNodeCollection<Statement> statements, final ControlFlowNode source) { ControlFlowNode childNode = null; for (final Statement statement : statements) { if (childNode == null) { childNode = createStartNode(statement); if (source != null) { connect(source, childNode); } } assert childNode.getNextStatement() == statement; childNode = statement.acceptVisitor(this, childNode); assert childNode.getPreviousStatement() == statement; } return childNode != null ? childNode : source; }
@Override public ControlFlowNode visitDoWhileStatement(final DoWhileStatement node, final ControlFlowNode data) { final ControlFlowNode end = createEndNode(node, false); final ControlFlowNode conditionNode = createSpecialNode(node, ControlFlowNodeType.LoopCondition, false); breakTargets.push(end); continueTargets.push(conditionNode); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); connect(data, bodyStart); final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart); connect(bodyEnd, conditionNode); final Boolean condition = evaluateCondition(node.getCondition()); if (!Boolean.FALSE.equals(condition)) { connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); } if (!Boolean.TRUE.equals(condition)) { connect(conditionNode, end, ControlFlowEdgeType.ConditionFalse); } breakTargets.pop(); continueTargets.pop(); nodes.add(conditionNode); nodes.add(end); return end; }
@Override public ControlFlowNode visitDoWhileStatement(final DoWhileStatement node, final ControlFlowNode data) { final ControlFlowNode end = createEndNode(node, false); final ControlFlowNode conditionNode = createSpecialNode(node, ControlFlowNodeType.LoopCondition, false); breakTargets.push(end); continueTargets.push(conditionNode); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); connect(data, bodyStart); final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart); connect(bodyEnd, conditionNode); final Boolean condition = evaluateCondition(node.getCondition()); if (!Boolean.FALSE.equals(condition)) { connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); } if (!Boolean.TRUE.equals(condition)) { connect(conditionNode, end, ControlFlowEdgeType.ConditionFalse); } breakTargets.pop(); continueTargets.pop(); nodes.add(conditionNode); nodes.add(end); return end; }
@Override public ControlFlowNode visitWhileStatement(final WhileStatement node, final ControlFlowNode data) { final ControlFlowNode end = createEndNode(node, false); final ControlFlowNode conditionNode = createSpecialNode(node, ControlFlowNodeType.LoopCondition); breakTargets.push(end); continueTargets.push(conditionNode); connect(data, conditionNode); final Boolean condition = evaluateCondition(node.getCondition()); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); if (!Boolean.FALSE.equals(condition)) { connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); } final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart); connect(bodyEnd, conditionNode); if (!Boolean.TRUE.equals(condition)) { connect(conditionNode, end, ControlFlowEdgeType.ConditionFalse); } breakTargets.pop(); continueTargets.pop(); nodes.add(end); return end; }
@Override public ControlFlowNode visitWhileStatement(final WhileStatement node, final ControlFlowNode data) { final ControlFlowNode end = createEndNode(node, false); final ControlFlowNode conditionNode = createSpecialNode(node, ControlFlowNodeType.LoopCondition); breakTargets.push(end); continueTargets.push(conditionNode); connect(data, conditionNode); final Boolean condition = evaluateCondition(node.getCondition()); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); if (!Boolean.FALSE.equals(condition)) { connect(conditionNode, bodyStart, ControlFlowEdgeType.ConditionTrue); } final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart); connect(bodyEnd, conditionNode); if (!Boolean.TRUE.equals(condition)) { connect(conditionNode, end, ControlFlowEdgeType.ConditionFalse); } breakTargets.pop(); continueTargets.pop(); nodes.add(end); return end; }
final ControlFlowNode handleStatementList(final AstNodeCollection<Statement> statements, final ControlFlowNode source) { ControlFlowNode childNode = null; for (final Statement statement : statements) { if (childNode == null) { childNode = createStartNode(statement); if (source != null) { connect(source, childNode); } } assert childNode.getNextStatement() == statement; childNode = statement.acceptVisitor(this, childNode); assert childNode.getPreviousStatement() == statement; } return childNode != null ? childNode : source; }
final ControlFlowNode handleStatementList(final AstNodeCollection<Statement> statements, final ControlFlowNode source) { ControlFlowNode childNode = null; for (final Statement statement : statements) { if (childNode == null) { childNode = createStartNode(statement); if (source != null) { connect(source, childNode); } } assert childNode.getNextStatement() == statement; childNode = statement.acceptVisitor(this, childNode); assert childNode.getPreviousStatement() == statement; } return childNode != null ? childNode : source; }
continueTargets.push(iteratorStart); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart);
continueTargets.push(iteratorStart); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart);
continueTargets.push(iteratorStart); final ControlFlowNode bodyStart = createStartNode(node.getEmbeddedStatement()); final ControlFlowNode bodyEnd = node.getEmbeddedStatement().acceptVisitor(this, bodyStart);
@Override public ControlFlowNode visitIfElseStatement(final IfElseStatement node, final ControlFlowNode data) { final Boolean condition = evaluateCondition(node.getCondition()); final ControlFlowNode trueBegin = createStartNode(node.getTrueStatement()); final ControlFlowNode falseBegin = createStartNode(node.getFalseStatement());
@Override public ControlFlowNode visitIfElseStatement(final IfElseStatement node, final ControlFlowNode data) { final Boolean condition = evaluateCondition(node.getCondition()); final ControlFlowNode trueBegin = createStartNode(node.getTrueStatement()); final ControlFlowNode falseBegin = createStartNode(node.getFalseStatement());
@Override public ControlFlowNode visitIfElseStatement(final IfElseStatement node, final ControlFlowNode data) { final Boolean condition = evaluateCondition(node.getCondition()); final ControlFlowNode trueBegin = createStartNode(node.getTrueStatement()); final ControlFlowNode falseBegin = createStartNode(node.getFalseStatement());
this.resolver = resolver; final ControlFlowNode entryPoint = createStartNode(statement);
this.resolver = resolver; final ControlFlowNode entryPoint = createStartNode(statement);