GrReferenceExpression lvalueRef = (GrReferenceExpression)assignment.getLValue();
lvalueRef.setQualifier(refExpr.getQualifier());
- lvalueRef.handleElementRenameSimple(name);
+ lvalueRef.handleElementRename(name);
assignment.getRValue().replaceWithExpression(value, true);
return assignment;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiPolyVariantReference;
import com.intellij.psi.PsiType;
-import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult;
@NotNull
String getClassNameText();
-
- PsiElement handleElementRenameSimple(String newElementName) throws IncorrectOperationException;
}
}
@Override
- public PsiElement handleElementRenameSimple(String newElementName) throws IncorrectOperationException {
+ public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException {
PsiElement nameElement = getReferenceNameElement();
if (nameElement != null) {
ASTNode node = nameElement.getNode();
return this;
}
- @Override
- public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException {
- return handleElementRenameSimple(newElementName);
- }
-
@Override
public PsiElement bindToElement(@NotNull PsiElement element) throws IncorrectOperationException {
if (isReferenceTo(element)) return this;
if (!preserveQualification || qualifiedName == null) {
final String newName = ((PsiClass)element).getName();
setQualifier(null);
- final GrReferenceElementImpl newElement = ((GrReferenceElementImpl)handleElementRenameSimple(newName));
+ final GrReferenceElementImpl newElement = ((GrReferenceElementImpl)handleElementRename(newName));
if (newElement.isReferenceTo(element) || qualifiedName == null || JavaPsiFacade.getInstance(getProject()).findClass(qualifiedName, getResolveScope()) == null) {
return newElement;
@Override
public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException {
+ if (!PsiUtil.isValidReferenceName(newElementName)) {
+ final PsiElement old = getReferenceNameElement();
+ if (old == null) throw new IncorrectOperationException("ref has no name element");
+
+ PsiElement element = GroovyPsiElementFactory.getInstance(getProject()).createStringLiteralForReference(newElementName);
+ old.replace(element);
+ return this;
+ }
+
+ if (PsiUtil.isThisOrSuperRef(this)) return this;
+
final GroovyResolveResult result = advancedResolve();
if (result.isInvokedOnProperty()) {
final String name = GroovyPropertyUtils.getPropertyNameByAccessorName(newElementName);
newElementName = name;
}
}
- if (PsiUtil.isThisOrSuperRef(this)) return this;
- return handleElementRenameSimple(newElementName);
+ return super.handleElementRename(newElementName);
}
@Override
return ((GrReferenceExpressionImpl)qualifier).isFullyQualified();
}
- @Override
- public PsiElement handleElementRenameSimple(String newElementName) throws IncorrectOperationException {
- if (!PsiUtil.isValidReferenceName(newElementName)) {
- final PsiElement old = getReferenceNameElement();
- if (old == null) throw new IncorrectOperationException("ref has no name element");
-
- PsiElement element = GroovyPsiElementFactory.getInstance(getProject()).createStringLiteralForReference(newElementName);
- old.replace(element);
- return this;
- }
-
- return super.handleElementRenameSimple(newElementName);
- }
-
public String toString() {
return "Reference expression";
}
return myClassName;
}
- @Override
- public PsiElement handleElementRenameSimple(String newElementName) throws IncorrectOperationException {
- throw new UnsupportedOperationException();
- }
-
@Override
public GrCodeReferenceElement getQualifier() {
return null;
((LeafElement)textToken).replaceWithText(name);
}
else if (declaration instanceof GrReferenceExpression) {
- ((GrReferenceExpression)declaration).handleElementRenameSimple(name);
+ ((GrReferenceExpression)declaration).handleElementRename(name);
}
}
}
@Override
- public PsiElement handleElementRenameSimple(String newElementName) throws IncorrectOperationException {
+ public PsiElement handleElementRename(String newElementName) throws IncorrectOperationException {
if (StringUtil.isJavaIdentifier(newElementName)) {
- return super.handleElementRenameSimple(newElementName);
+ return super.handleElementRename(newElementName);
}
else {
throw new IncorrectOperationException("Cannot rename reference to '" + newElementName + "'");
if (refName == null) return;
if (memberName.equals(refName)) {
- ref.handleElementRenameSimple(name);
+ ref.handleElementRename(name);
}
else if (refName.equals(GroovyPropertyUtils.getPropertyNameByAccessorName(memberName))) {
final String newPropName = GroovyPropertyUtils.getPropertyNameByAccessorName(name);
if (newPropName != null) {
- ref.handleElementRenameSimple(newPropName);
+ ref.handleElementRename(newPropName);
}
else {
- ref.handleElementRenameSimple(name);
+ ref.handleElementRename(name);
}
}
else if (refName.equals(GroovyPropertyUtils.getGetterNameBoolean(memberName))) {
final String getterName = GroovyPropertyUtils.getGetterNameBoolean(name);
- ref.handleElementRenameSimple(getterName);
+ ref.handleElementRename(getterName);
}
else if (refName.equals(GroovyPropertyUtils.getGetterNameNonBoolean(memberName))) {
final String getterName = GroovyPropertyUtils.getGetterNameNonBoolean(name);
- ref.handleElementRenameSimple(getterName);
+ ref.handleElementRename(getterName);
}
else if (refName.equals(GroovyPropertyUtils.getSetterName(memberName))) {
final String getterName = GroovyPropertyUtils.getSetterName(name);
- ref.handleElementRenameSimple(getterName);
+ ref.handleElementRename(getterName);
}
}
}
import com.intellij.refactoring.rename.UnresolvableCollisionUsageInfo;
import com.intellij.usageView.UsageInfo;
import com.intellij.util.IncorrectOperationException;
-import com.intellij.util.Processor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.GrReferenceElement;
for (UsageInfo usage : propertyAccess) {
final PsiReference ref = usage.getReference();
if (ref != null) {
- ((GrReferenceExpression)ref).handleElementRenameSimple(propertyName);
+ ((GrReferenceExpression)ref).handleElementRename(propertyName);
}
}
}
boolean shouldCheckForCorrectResolve,
PsiManager manager) {
final PsiReference ref = info.getReference();
- final PsiElement renamed = ((GrReferenceExpression)ref).handleElementRenameSimple(nameToUse);
+ assert ref != null;
+ final PsiElement renamed = ref.handleElementRename(nameToUse);
PsiElement newly_resolved = ref.resolve();
if (shouldCheckForCorrectResolve) {
if (element instanceof GrAccessorMethod && newly_resolved instanceof GrAccessorMethod) {