Class ClassPath

java.lang.Object
org.jf.dexlib2.analysis.ClassPath

public class ClassPath extends Object
  • Field Details

    • unknownClass

      @Nonnull private final TypeProto unknownClass
    • classProviders

      @Nonnull private List<ClassProvider> classProviders
    • checkPackagePrivateAccess

      private final boolean checkPackagePrivateAccess
    • oatVersion

      public final int oatVersion
    • NOT_ART

      public static final int NOT_ART
      See Also:
    • NOT_SPECIFIED

      public static final int NOT_SPECIFIED
      See Also:
    • classLoader

      private final com.google.common.cache.CacheLoader<String,TypeProto> classLoader
    • loadedClasses

      @Nonnull private com.google.common.cache.LoadingCache<String,TypeProto> loadedClasses
    • fieldInstructionMapperSupplier

      private final com.google.common.base.Supplier<OdexedFieldInstructionMapper> fieldInstructionMapperSupplier
  • Constructor Details

    • ClassPath

      public ClassPath(ClassProvider... classProviders) throws IOException
      Creates a new ClassPath instance that can load classes from the given providers
      Parameters:
      classProviders - A varargs array of ClassProviders. When loading a class, these providers will be searched in order
      Throws:
      IOException
    • ClassPath

      public ClassPath(Iterable<ClassProvider> classProviders) throws IOException
      Creates a new ClassPath instance that can load classes from the given providers
      Parameters:
      classProviders - An iterable of ClassProviders. When loading a class, these providers will be searched in order
      Throws:
      IOException
    • ClassPath

      public ClassPath(@Nonnull Iterable<? extends ClassProvider> classProviders, boolean checkPackagePrivateAccess, int oatVersion)
      Creates a new ClassPath instance that can load classes from the given providers
      Parameters:
      classProviders - An iterable of ClassProviders. When loading a class, these providers will be searched in order
      checkPackagePrivateAccess - Whether checkPackagePrivateAccess is needed, enabled for ONLY early API 17 by default
      oatVersion - The applicable oat version, or NOT_ART
  • Method Details

    • loadPrimitiveType

      private void loadPrimitiveType(String type)
    • getBasicClasses

      private static ClassProvider getBasicClasses()
    • isArt

      public boolean isArt()
    • getClass

      @Nonnull public TypeProto getClass(@Nonnull CharSequence type)
    • getClassDef

      @Nonnull public ClassDef getClassDef(String type)
    • getUnknownClass

      @Nonnull public TypeProto getUnknownClass()
    • shouldCheckPackagePrivateAccess

      public boolean shouldCheckPackagePrivateAccess()
    • getFieldInstructionMapper

      @Nonnull public OdexedFieldInstructionMapper getFieldInstructionMapper()