1 package no.uio.ifi.refaktor.analyze.analyzers;
3 import java.util.HashSet;
7 import no.uio.ifi.refaktor.textselection.CompilationUnitTextSelection;
9 import org.eclipse.jdt.core.ICompilationUnit;
10 import org.eclipse.jdt.core.dom.Statement;
12 public class TextSelectionsGeneratorHelper {
14 public final Set<CompilationUnitTextSelection> textSelections;
15 private final ICompilationUnit compilationUnit;
17 private TextSelectionsGeneratorHelper(ICompilationUnit compilationUnit) {
18 this.compilationUnit = compilationUnit;
19 textSelections = new HashSet<CompilationUnitTextSelection>();
22 static Set<CompilationUnitTextSelection> generateSelectionsFromList(List<Statement> statements, ICompilationUnit compilationUnit) {
23 return new TextSelectionsGeneratorHelper(compilationUnit).generateSelectionsFromList(statements);
26 private Set<CompilationUnitTextSelection> generateSelectionsFromList(List<Statement> statements) {
27 for (Statement statement: statements)
28 generateSelectionsFor(statement);
29 return textSelections;
32 private void generateSelectionsFor(Statement statement) {
33 Set<CompilationUnitTextSelection> newSelections = new HashSet<CompilationUnitTextSelection>();
34 CompilationUnitTextSelection textSelectionFromStatement = createTextSelectionFromStatement(statement);
35 textSelectionFromStatement.generated_1113821714625968249(newSelections, this);
38 private CompilationUnitTextSelection createTextSelectionFromStatement(Statement statement) {
39 return new CompilationUnitTextSelection(compilationUnit, statement.getStartPosition(), statement.getLength());
42 public static CompilationUnitTextSelection addTwoTextSelections(
43 CompilationUnitTextSelection textSelectionOne, CompilationUnitTextSelection textSelectionTwo) {
44 int offset = Math.min(textSelectionOne.getOffset(), textSelectionTwo.getOffset());
45 int length = Math.max(textSelectionOne.getEnd(), textSelectionTwo.getEnd()) - offset;
46 return new CompilationUnitTextSelection(textSelectionOne.getCompilationUnit(), offset, length);