Refactoring: extract methods
This commit is contained in:
@@ -33,30 +33,38 @@ import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
|||||||
|
|
||||||
public class KotlinDefinitionsSearcher extends QueryExecutorBase<PsiElement, PsiElement> {
|
public class KotlinDefinitionsSearcher extends QueryExecutorBase<PsiElement, PsiElement> {
|
||||||
@Override
|
@Override
|
||||||
public void processQuery(@NotNull final PsiElement queryParameters, @NotNull Processor<PsiElement> consumer) {
|
public void processQuery(@NotNull PsiElement queryParameters, @NotNull Processor<PsiElement> consumer) {
|
||||||
if (queryParameters instanceof JetClass) {
|
if (queryParameters instanceof JetClass) {
|
||||||
PsiClass psiClass = ApplicationManager.getApplication().runReadAction(new Computable<PsiClass>() {
|
processClassImplementations((JetClass) queryParameters, consumer);
|
||||||
@Override
|
|
||||||
public PsiClass compute() {
|
|
||||||
return LightClassUtil.getPsiClass((JetClass) queryParameters);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (psiClass != null) {
|
|
||||||
ContainerUtil.process(ClassInheritorsSearch.search(psiClass, true), consumer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queryParameters instanceof JetNamedFunction) {
|
if (queryParameters instanceof JetNamedFunction) {
|
||||||
PsiMethod psiMethod = ApplicationManager.getApplication().runReadAction(new Computable<PsiMethod>() {
|
processFunctionImplementations((JetNamedFunction) queryParameters, consumer);
|
||||||
@Override
|
}
|
||||||
public PsiMethod compute() {
|
}
|
||||||
return LightClassUtil.getLightClassMethod((JetNamedFunction) queryParameters);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (psiMethod != null) {
|
private static void processClassImplementations(final JetClass queryParameters, Processor<PsiElement> consumer) {
|
||||||
ContainerUtil.process(MethodImplementationsSearch.getMethodImplementations(psiMethod), consumer);
|
PsiClass psiClass = ApplicationManager.getApplication().runReadAction(new Computable<PsiClass>() {
|
||||||
|
@Override
|
||||||
|
public PsiClass compute() {
|
||||||
|
return LightClassUtil.getPsiClass(queryParameters);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
if (psiClass != null) {
|
||||||
|
ContainerUtil.process(ClassInheritorsSearch.search(psiClass, true), consumer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void processFunctionImplementations(final JetNamedFunction queryParameters, Processor<PsiElement> consumer) {
|
||||||
|
PsiMethod psiMethod = ApplicationManager.getApplication().runReadAction(new Computable<PsiMethod>() {
|
||||||
|
@Override
|
||||||
|
public PsiMethod compute() {
|
||||||
|
return LightClassUtil.getLightClassMethod(queryParameters);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (psiMethod != null) {
|
||||||
|
ContainerUtil.process(MethodImplementationsSearch.getMethodImplementations(psiMethod), consumer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user