extract super: validate different qualified names, accept same short names (IDEA-159142)

This commit is contained in:
Anna Kozlova
2017-01-13 14:26:16 +01:00
parent 5e75e1be4e
commit 8b47b700fe
2 changed files with 17 additions and 3 deletions
@@ -177,8 +177,14 @@ public abstract class JavaExtractSuperBaseDialog extends ExtractSuperBaseDialog<
@Override
protected String validateName(String name) {
return PsiNameHelper.getInstance(myProject).isIdentifier(name)
? name.equals(mySourceClass.getName())
? "Different name expected" : null
? null
: RefactoringMessageUtil.getIncorrectIdentifierMessage(name);
}
@Nullable
@Override
protected String validateQualifiedName(String packageName, String extractedSuperName) {
return StringUtil.getQualifiedName(packageName, extractedSuperName).equals(mySourceClass.getQualifiedName()) ? "Different name expected"
: null;
}
}
@@ -83,6 +83,11 @@ public abstract class ExtractSuperBaseDialog<ClassType extends PsiElement, Membe
@Nullable
protected abstract String validateName(String name);
@Nullable
protected String validateQualifiedName(String packageName, String extractedSuperName) {
return null;
}
protected abstract String getTopLabelText();
@@ -235,13 +240,16 @@ public abstract class ExtractSuperBaseDialog<ClassType extends PsiElement, Membe
final String packageName = getTargetPackageName();
RecentsManager.getInstance(myProject).registerRecentEntry(getDestinationPackageRecentKey(), packageName);
if ("".equals(extractedSuperName)) {
if (extractedSuperName != null && extractedSuperName.isEmpty()) {
// TODO just disable OK button
errorString[0] = getExtractedSuperNameNotSpecifiedMessage();
myExtractedSuperNameField.requestFocusInWindow();
}
else {
String nameError = validateName(extractedSuperName);
if (nameError == null) {
nameError = validateQualifiedName(packageName, extractedSuperName);
}
if (nameError != null) {
errorString[0] = nameError;
myExtractedSuperNameField.requestFocusInWindow();