1 package no.uio.ifi.refaktor.analyze.collectors;
3 import no.uio.ifi.refaktor.utils.CompilationUnitTextSelection;
5 import org.eclipse.jdt.core.dom.ASTNode;
6 import org.eclipse.jdt.core.dom.Statement;
8 public class LastStatementCollector extends PropertyCollector {
9 private final ASTNode coveringNode;
10 private Statement lastStatement;
12 public LastStatementCollector(CompilationUnitTextSelection selection, ASTNode coveringNode) {
14 this.coveringNode = coveringNode;
18 public boolean preVisit2(ASTNode node) {
19 if (node == coveringNode)
22 if (!nodeInSelection(node))
25 if (node instanceof Statement && isPlacedAfterLastStatement(node)) {
26 lastStatement = (Statement) node;
32 private boolean isPlacedAfterLastStatement(ASTNode node) {
33 if (lastStatement == null)
36 int nodeEndPosition = node.getStartPosition() + node.getLength();
37 int lastStatementEndPosition = lastStatement.getStartPosition() + lastStatement.getLength();
38 return nodeEndPosition > lastStatementEndPosition;
41 public Statement getLastStatement() {
46 public void clearData() {