Home | History | Annotate | Download | only in analysis
      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