1 package org.jf.smalidea.dexlib.analysis; 2 3 import com.intellij.openapi.project.Project; 4 import com.intellij.openapi.vfs.VirtualFile; 5 import com.intellij.psi.PsiClass; 6 import com.intellij.psi.impl.ResolveScopeManager; 7 import org.jf.dexlib2.analysis.ClassProvider; 8 import org.jf.dexlib2.iface.ClassDef; 9 import org.jf.smalidea.dexlib.SmalideaClassDef; 10 import org.jf.smalidea.util.NameUtils; 11 12 import javax.annotation.Nonnull; 13 import javax.annotation.Nullable; 14 15 public class SmalideaClassProvider implements ClassProvider { 16 private final Project project; 17 private final VirtualFile file; 18 19 public SmalideaClassProvider(@Nonnull Project project, @Nonnull VirtualFile file) { 20 this.project = project; 21 this.file = file; 22 } 23 24 @Nullable @Override public ClassDef getClassDef(String type) { 25 ResolveScopeManager manager = ResolveScopeManager.getInstance(project); 26 PsiClass psiClass = NameUtils.resolveSmaliType(project, manager.getDefaultResolveScope(file), type); 27 if (psiClass != null) { 28 return new SmalideaClassDef(psiClass); 29 } 30 return null; 31 } 32 } 33