Refactoring: extract method

This commit is contained in:
Nikolay Krasko
2014-01-10 22:26:45 +04:00
parent 7094351c00
commit 4928ff575d
@@ -267,15 +267,8 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT
List<String> caretElementClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// PSI_ELEMENT: "); List<String> caretElementClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// PSI_ELEMENT: ");
assert caretElementClassNames.size() == 1; assert caretElementClassNames.size() == 1;
//noinspection unchecked //noinspection unchecked
Class<T> caretElementClass = (Class<T>)Class.forName(caretElementClassNames.get(0));
List<String> filteringRuleClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// FILTERING_RULES: "); Class<T> caretElementClass = (Class<T>)Class.forName(caretElementClassNames.get(0));
Collection<UsageFilteringRule> filters = new ArrayList<UsageFilteringRule>();
for (String filteringRuleClassName : filteringRuleClassNames) {
//noinspection unchecked
Class<UsageFilteringRule> klass = (Class<UsageFilteringRule>) Class.forName(filteringRuleClassName);
filters.add(klass.newInstance());
}
OptionsParser parser = OptionsParser.getParserByPsiElementClass(caretElementClass); OptionsParser parser = OptionsParser.getParserByPsiElementClass(caretElementClass);
@@ -293,6 +286,7 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT
} }
} }
); );
assert extraFiles != null; assert extraFiles != null;
for (File file : extraFiles) { for (File file : extraFiles) {
myFixture.configureByFile(rootPath + file.getName()); myFixture.configureByFile(rootPath + file.getName());
@@ -305,7 +299,9 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT
FindUsagesOptions options = parser != null ? parser.parse(mainFileText, getProject()) : null; FindUsagesOptions options = parser != null ? parser.parse(mainFileText, getProject()) : null;
Collection<UsageInfo> usageInfos = findUsages(caretElement, options); Collection<UsageInfo> usageInfos = findUsages(caretElement, options);
Collection<UsageInfo2UsageAdapter> filteredUsages = getUsageAdapters(filters, usageInfos); Collection<UsageInfo2UsageAdapter> filteredUsages = getUsageAdapters(
getTestFilteringRules(mainFileText, "// FILTERING_RULES: "),
usageInfos);
Function<UsageInfo2UsageAdapter, String> convertToString = new Function<UsageInfo2UsageAdapter, String>() { Function<UsageInfo2UsageAdapter, String> convertToString = new Function<UsageInfo2UsageAdapter, String>() {
@Override @Override
@@ -382,4 +378,18 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT
return UsageType.UNCLASSIFIED; return UsageType.UNCLASSIFIED;
} }
private static Collection<UsageFilteringRule> getTestFilteringRules(String mainFileText, String directive)
throws ClassNotFoundException, InstantiationException, IllegalAccessException {
List<String> filteringRuleClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, directive);
Collection<UsageFilteringRule> filters = new ArrayList<UsageFilteringRule>();
for (String filteringRuleClassName : filteringRuleClassNames) {
//noinspection unchecked
Class<UsageFilteringRule> klass = (Class<UsageFilteringRule>) Class.forName(filteringRuleClassName);
filters.add(klass.newInstance());
}
return filters;
}
} }