]> git.uio.no Git - ifi-stolz-refaktor.git/blob - case-study/refaktor-after/src/no/uio/ifi/refaktor/analyze/analyzers/TextSelectionsGenerator.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / refaktor-after / src / no / uio / ifi / refaktor / analyze / analyzers / TextSelectionsGenerator.java
1 package no.uio.ifi.refaktor.analyze.analyzers;
2
3 import java.util.HashSet;
4 import java.util.List;
5 import java.util.Set;
6
7 import no.uio.ifi.refaktor.textselection.CompilationUnitTextSelection;
8
9 import org.eclipse.jdt.core.ICompilationUnit;
10 import org.eclipse.jdt.core.dom.Statement;
11
12 public class TextSelectionsGenerator {
13
14         private final StatementListsCreator statementsCreator;
15         private final ICompilationUnit compilationUnit;
16         private final Set<CompilationUnitTextSelection> textSelections;
17
18         public TextSelectionsGenerator(StatementListsCreator statementsCreator, ICompilationUnit compilationUnit) {
19                 this.statementsCreator = statementsCreator;
20                 this.compilationUnit = compilationUnit;
21                 textSelections = new HashSet<CompilationUnitTextSelection>();
22         }
23
24         public static Set<CompilationUnitTextSelection> generateTextSelections(StatementListsCreator statementsCreator, ICompilationUnit compilationUnit) {
25                 TextSelectionsGenerator textSelectionsGenerator = new TextSelectionsGenerator(statementsCreator, compilationUnit);
26                 textSelectionsGenerator.generateTextSelections();
27                 return textSelectionsGenerator.textSelections;
28         }
29
30         private void generateTextSelections() {
31                 for (List<Statement> statements: statementsCreator.getStatementLists())
32                         textSelections.addAll(TextSelectionsGeneratorHelper.generateSelectionsFromList(statements, compilationUnit));
33         }
34
35 }