mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
remove code duplication: introduce and use RefactoringElementAdapter
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -85,7 +86,7 @@ public class RefactoringListeners {
|
||||
}
|
||||
}
|
||||
|
||||
private static abstract class RenameElement<T extends PsiElement> implements RefactoringElementListener {
|
||||
private static abstract class RenameElement<T extends PsiElement> extends RefactoringElementAdapter {
|
||||
private final Accessor<T> myAccessor;
|
||||
private final String myPath;
|
||||
|
||||
@@ -94,22 +95,15 @@ public class RefactoringListeners {
|
||||
myPath = path;
|
||||
}
|
||||
|
||||
public void elementMoved(@NotNull final PsiElement newElement) {
|
||||
setName((T)newElement);
|
||||
}
|
||||
|
||||
public void elementRenamed(@NotNull final PsiElement newElement) {
|
||||
setName((T)newElement);
|
||||
}
|
||||
|
||||
private void setName(@NotNull T newElement) {
|
||||
String qualifiedName = getQualifiedName(newElement);
|
||||
public void elementRenamedOrMoved(@NotNull final PsiElement newElement) {
|
||||
T newElement1 = (T)newElement;
|
||||
String qualifiedName = getQualifiedName(newElement1);
|
||||
if (myPath.length() > 0) {
|
||||
qualifiedName = qualifiedName + "." + myPath;
|
||||
newElement = findNewElement(newElement, qualifiedName);
|
||||
newElement1 = findNewElement(newElement1, qualifiedName);
|
||||
}
|
||||
if (newElement != null) {
|
||||
myAccessor.setPsiElement(newElement);
|
||||
if (newElement1 != null) {
|
||||
myAccessor.setPsiElement(newElement1);
|
||||
}
|
||||
else {
|
||||
myAccessor.setName(qualifiedName);
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright 2000-2011 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.refactoring.listeners;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public abstract class RefactoringElementAdapter implements RefactoringElementListener {
|
||||
@Override
|
||||
public final void elementMoved(@NotNull PsiElement newElement) {
|
||||
elementRenamedOrMoved(newElement);
|
||||
}
|
||||
|
||||
protected abstract void elementRenamedOrMoved(@NotNull PsiElement newElement);
|
||||
|
||||
@Override
|
||||
public final void elementRenamed(@NotNull PsiElement newElement) {
|
||||
elementRenamedOrMoved(newElement);
|
||||
}
|
||||
}
|
||||
+3
-11
@@ -20,6 +20,7 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiQualifiedNamedElement;
|
||||
import com.intellij.psi.search.scope.packageSet.*;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListenerComposite;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListenerProvider;
|
||||
@@ -80,18 +81,9 @@ public class RefactoringScopeElementListenerProvider implements RefactoringEleme
|
||||
if (composite == null) {
|
||||
composite = new RefactoringElementListenerComposite();
|
||||
}
|
||||
composite.addListener(new RefactoringElementListener() {
|
||||
composite.addListener(new RefactoringElementAdapter() {
|
||||
@Override
|
||||
public void elementMoved(@NotNull PsiElement newElement) {
|
||||
setName(newElement);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void elementRenamed(@NotNull PsiElement newElement) {
|
||||
setName(newElement);
|
||||
}
|
||||
|
||||
private void setName(@NotNull PsiElement newElement) {
|
||||
public void elementRenamedOrMoved(@NotNull PsiElement newElement) {
|
||||
LOG.assertTrue(newElement instanceof PsiQualifiedNamedElement);
|
||||
try {
|
||||
final String newPattern = text.replace(descriptor.getOldQName(), ((PsiQualifiedNamedElement)newElement).getQualifiedName());
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.search.ProjectScope;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import org.jetbrains.android.dom.manifest.Manifest;
|
||||
import org.jetbrains.android.facet.AndroidFacet;
|
||||
@@ -115,12 +116,8 @@ public class AndroidRunConfiguration extends AndroidRunConfigurationBase impleme
|
||||
@Nullable
|
||||
public RefactoringElementListener getRefactoringElementListener(PsiElement element) {
|
||||
if (element instanceof PsiClass && Comparing.strEqual(((PsiClass)element).getQualifiedName(), ACTIVITY_CLASS, true)) {
|
||||
return new RefactoringElementListener() {
|
||||
public void elementMoved(@NotNull PsiElement newElement) {
|
||||
ACTIVITY_CLASS = ((PsiClass)newElement).getQualifiedName();
|
||||
}
|
||||
|
||||
public void elementRenamed(@NotNull PsiElement newElement) {
|
||||
return new RefactoringElementAdapter() {
|
||||
public void elementRenamedOrMoved(@NotNull PsiElement newElement) {
|
||||
ACTIVITY_CLASS = ((PsiClass)newElement).getQualifiedName();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import com.intellij.rt.execution.junit.JUnitStarter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -78,18 +79,10 @@ class TestMethod extends TestObject {
|
||||
final PsiMethod method = (PsiMethod)element;
|
||||
if (!method.getName().equals(configuration.getPersistentData().getMethodName())) return null;
|
||||
if (!method.getContainingClass().equals(configuration.myClass.getPsiElement())) return null;
|
||||
return new RefactoringElementListener() {
|
||||
public void elementMoved(@NotNull final PsiElement newElement) {
|
||||
setMethod(configuration, (PsiMethod)newElement);
|
||||
}
|
||||
|
||||
public void elementRenamed(@NotNull final PsiElement newElement) {
|
||||
setMethod(configuration, (PsiMethod)newElement);
|
||||
}
|
||||
|
||||
private void setMethod(final JUnitConfiguration configuration, final PsiMethod psiMethod) {
|
||||
return new RefactoringElementAdapter() {
|
||||
public void elementRenamedOrMoved(@NotNull final PsiElement newElement) {
|
||||
final boolean generatedName = configuration.isGeneratedName();
|
||||
configuration.getPersistentData().setTestMethod(PsiLocation.fromPsiElement(psiMethod));
|
||||
configuration.getPersistentData().setTestMethod(PsiLocation.fromPsiElement((PsiMethod)newElement));
|
||||
if (generatedName) configuration.setGeneratedName();
|
||||
}
|
||||
};
|
||||
|
||||
+4
-11
@@ -39,6 +39,7 @@ import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import com.theoryinpractice.testng.model.TestData;
|
||||
import com.theoryinpractice.testng.model.TestType;
|
||||
@@ -395,18 +396,10 @@ public class TestNGConfiguration extends ModuleBasedConfiguration<JavaRunConfigu
|
||||
final PsiMethod method = (PsiMethod)element;
|
||||
if (!method.getName().equals(data.getMethodName())) return null;
|
||||
if (!method.getContainingClass().equals(myClass.getPsiElement())) return null;
|
||||
final RefactoringElementListener listener = new RefactoringElementListener() {
|
||||
public void elementMoved(@NotNull final PsiElement newElement) {
|
||||
setMethod((PsiMethod)newElement);
|
||||
}
|
||||
|
||||
public void elementRenamed(@NotNull final PsiElement newElement) {
|
||||
setMethod((PsiMethod)newElement);
|
||||
}
|
||||
|
||||
private void setMethod(final PsiMethod psiMethod) {
|
||||
final RefactoringElementListener listener = new RefactoringElementAdapter() {
|
||||
public void elementRenamedOrMoved(@NotNull final PsiElement newElement) {
|
||||
final boolean generatedName = isGeneratedName();
|
||||
data.setTestMethod(PsiLocation.fromPsiElement(psiMethod));
|
||||
data.setTestMethod(PsiLocation.fromPsiElement((PsiMethod)newElement));
|
||||
if (generatedName) setGeneratedName();
|
||||
}
|
||||
};
|
||||
|
||||
+3
-6
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.uiDesigner.palette;
|
||||
|
||||
import com.intellij.refactoring.listeners.RefactoringElementAdapter;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListenerProvider;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
import com.intellij.psi.PsiElement;
|
||||
@@ -48,18 +49,14 @@ public class PaletteRefactoringListenerProvider implements RefactoringElementLis
|
||||
return null;
|
||||
}
|
||||
|
||||
private class MyRefactoringElementListener implements RefactoringElementListener {
|
||||
private class MyRefactoringElementListener extends RefactoringElementAdapter{
|
||||
private final ComponentItem myItem;
|
||||
|
||||
public MyRefactoringElementListener(final ComponentItem item) {
|
||||
myItem = item;
|
||||
}
|
||||
|
||||
public void elementMoved(@NotNull PsiElement newElement) {
|
||||
elementRenamed(newElement);
|
||||
}
|
||||
|
||||
public void elementRenamed(@NotNull PsiElement newElement) {
|
||||
public void elementRenamedOrMoved(@NotNull PsiElement newElement) {
|
||||
PsiClass psiClass = (PsiClass) newElement;
|
||||
final String qName = ClassUtil.getJVMClassName(psiClass);
|
||||
if (qName != null) {
|
||||
|
||||
Reference in New Issue
Block a user