| package org.jetbrains.android.run; |
| |
| import com.intellij.execution.ui.ConfigurationModuleSelector; |
| import com.intellij.openapi.module.Module; |
| import com.intellij.openapi.project.Project; |
| import com.intellij.psi.JavaPsiFacade; |
| import com.intellij.psi.PsiClass; |
| import org.jetbrains.annotations.NotNull; |
| |
| /** |
| * @author Eugene.Kudelevsky |
| */ |
| public class AndroidInheritingClassVisibilityChecker extends AndroidClassVisibilityCheckerBase { |
| private final Project myProject; |
| private final String myBaseClassName; |
| |
| public AndroidInheritingClassVisibilityChecker(@NotNull Project project, |
| @NotNull ConfigurationModuleSelector moduleSelector, |
| @NotNull String baseClassName) { |
| super(moduleSelector); |
| myProject = project; |
| myBaseClassName = baseClassName; |
| } |
| |
| |
| @Override |
| protected boolean isVisible(@NotNull Module module, @NotNull PsiClass aClass) { |
| final JavaPsiFacade facade = JavaPsiFacade.getInstance(myProject); |
| final PsiClass baseClass = facade.findClass(myBaseClassName, module.getModuleWithDependenciesAndLibrariesScope(true)); |
| return baseClass != null && (aClass).isInheritor(baseClass, true); |
| } |
| } |