mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
replace constructor with builder: qualify references ( IDEA-55476 )
This commit is contained in:
+1
-1
@@ -90,7 +90,7 @@ public class ReplaceConstructorWithBuilderProcessor extends FixableUsagesRefacto
|
||||
final PsiElement element = reference.getElement();
|
||||
final PsiNewExpression newExpression = PsiTreeUtil.getParentOfType(element, PsiNewExpression.class);
|
||||
if (newExpression != null && !PsiTreeUtil.isAncestor(builderClass, element, false)) {
|
||||
usages.add(new ReplaceConstructorWithSettersChainInfo(newExpression, myClassName, myParametersMap));
|
||||
usages.add(new ReplaceConstructorWithSettersChainInfo(newExpression, StringUtil.getQualifiedName(myPackageName, myClassName), myParametersMap));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -73,7 +73,7 @@ public class ReplaceConstructorWithSettersChainInfo extends FixableUsageInfo {
|
||||
"new " + myBuilderClass + "()." + buf.toString() + "create" + StringUtil.capitalize(constructor.getName()) + "()",
|
||||
null);
|
||||
|
||||
expr.replace(settersChain);
|
||||
styleManager.shortenClassReferences(expr.replace(settersChain));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import foo.Builder;
|
||||
|
||||
public class Bar {
|
||||
final Test foo = new Builder().setBar("bar").createTest();
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
public class Test {
|
||||
private final String bar;
|
||||
|
||||
public Test(final String bar) {
|
||||
this.bar = bar;
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package foo;
|
||||
|
||||
public class Builder {
|
||||
private String bar;
|
||||
|
||||
public Builder setBar(String bar) {
|
||||
this.bar = bar;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Test createTest() {
|
||||
return new Test(bar);
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
public class Bar {
|
||||
final Test foo = new Test("bar");
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
public class Test {
|
||||
private final String bar;
|
||||
|
||||
public Test(final String bar) {
|
||||
this.bar = bar;
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -58,6 +58,10 @@ public class ReplaceConstructorWithBuilderTest extends MultiFileTestCase {
|
||||
doTest(true);
|
||||
}
|
||||
|
||||
public void testImports() throws Exception {
|
||||
doTest(true, null, null, "foo");
|
||||
}
|
||||
|
||||
private void doTest(final boolean createNewBuilderClass) throws Exception {
|
||||
doTest(createNewBuilderClass, null);
|
||||
}
|
||||
@@ -67,6 +71,13 @@ public class ReplaceConstructorWithBuilderTest extends MultiFileTestCase {
|
||||
}
|
||||
|
||||
private void doTest(final boolean createNewBuilderClass, final Map<String, String> expectedDefaults, final String conflicts) throws Exception {
|
||||
doTest(createNewBuilderClass, expectedDefaults, conflicts, "");
|
||||
}
|
||||
|
||||
private void doTest(final boolean createNewBuilderClass,
|
||||
final Map<String, String> expectedDefaults,
|
||||
final String conflicts,
|
||||
final String packageName) throws Exception {
|
||||
doTest(new PerformAction() {
|
||||
public void performAction(final VirtualFile rootDir, final VirtualFile rootAfter) throws Exception {
|
||||
final PsiClass aClass = myJavaFacade.findClass("Test", GlobalSearchScope.projectScope(getProject()));
|
||||
@@ -85,7 +96,7 @@ public class ReplaceConstructorWithBuilderTest extends MultiFileTestCase {
|
||||
}
|
||||
}
|
||||
try {
|
||||
new ReplaceConstructorWithBuilderProcessor(getProject(), constructors, map, "Builder", "", createNewBuilderClass).run();
|
||||
new ReplaceConstructorWithBuilderProcessor(getProject(), constructors, map, "Builder", packageName, createNewBuilderClass).run();
|
||||
if (conflicts != null) {
|
||||
fail("Conflicts were not detected:" + conflicts);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user