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> {
|
||||
@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) {
|
||||
PsiClass psiClass = ApplicationManager.getApplication().runReadAction(new Computable<PsiClass>() {
|
||||
@Override
|
||||
public PsiClass compute() {
|
||||
return LightClassUtil.getPsiClass((JetClass) queryParameters);
|
||||
}
|
||||
});
|
||||
if (psiClass != null) {
|
||||
ContainerUtil.process(ClassInheritorsSearch.search(psiClass, true), consumer);
|
||||
}
|
||||
processClassImplementations((JetClass) queryParameters, consumer);
|
||||
}
|
||||
|
||||
if (queryParameters instanceof JetNamedFunction) {
|
||||
PsiMethod psiMethod = ApplicationManager.getApplication().runReadAction(new Computable<PsiMethod>() {
|
||||
@Override
|
||||
public PsiMethod compute() {
|
||||
return LightClassUtil.getLightClassMethod((JetNamedFunction) queryParameters);
|
||||
}
|
||||
});
|
||||
processFunctionImplementations((JetNamedFunction) queryParameters, consumer);
|
||||
}
|
||||
}
|
||||
|
||||
if (psiMethod != null) {
|
||||
ContainerUtil.process(MethodImplementationsSearch.getMethodImplementations(psiMethod), consumer);
|
||||
private static void processClassImplementations(final JetClass queryParameters, Processor<PsiElement> 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