package gw.plugin.ij.util;
import com.intellij.psi.*;
import java.util.HashSet;
import java.util.Set;
public class ClassTypeSearcher extends PsiTypeVisitor<Boolean> {
private final Set<PsiClassType> typeParams = new HashSet<>();
public Boolean visitArrayType(final PsiArrayType arrayType) {
return arrayType.getComponentType().accept(this);
}
public Boolean visitClassType(final PsiClassType classType) {
typeParams.add(classType);
final PsiType[] types = classType.getParameters();
for (final PsiType psiType : types) {
if (psiType.accept(this)) return true;
}
return false;
}
public Boolean visitWildcardType(final PsiWildcardType wildcardType) {
final PsiType bound = wildcardType.getBound();
return bound != null && bound.accept(this).booleanValue();
}
public Set<PsiClassType> getClasses() {
return typeParams;
}
}