Interface AnalysisInputLocation

All Known Subinterfaces:
ModuleInfoAnalysisInputLocation
All Known Implementing Classes:
ApkAnalysisInputLocation, ArchiveBasedAnalysisInputLocation, ClassFileBasedAnalysisInputLocation, DefaultRuntimeAnalysisInputLocation, DownloadJarAnalysisInputLocation, EagerInputLocation, JavaClassPathAnalysisInputLocation, JavaModulePathAnalysisInputLocation, JavaSourcePathAnalysisInputLocation, JimpleAnalysisInputLocation, JimpleStringAnalysisInputLocation, JrtFileSystemAnalysisInputLocation, ModuleMultiReleaseJarAnalysisInputLocation, MultiReleaseJarAnalysisInputLocation, OTFCompileAnalysisInputLocation, PathBasedAnalysisInputLocation

public interface AnalysisInputLocation
Public interface to an input location. AnalysisInputLocations are sources for SootClasses, e.g. Java Classpath, Android APK, JAR file, etc. The strategy to traverse something.

getClassSource(ClassType, View) and getClassSources(View) should in most cases simply call getClassSource(ClassType, View) or getClassSources(View) respectively with the default BodyInterceptors of the frontend.

Author:
Manuel Benz created on 22.05.18, Ben Hermann, Linghui Luo
  • Method Details

    • getClassSource

      @Nonnull Optional<? extends SootClassSource> getClassSource(@Nonnull ClassType type, @Nonnull View view)
      Create or find a class source for a given type.
      Parameters:
      type - The type of the class to be found.
      Returns:
      The source entry for that class.
    • getClassSources

      @Nonnull Stream<? extends SootClassSource> getClassSources(@Nonnull View view)
      Scan the input location and create ClassSources for every compilation / interpretation unit.
      Returns:
      an Autocloseable resource that must be closed!
    • getSourceType

      @Nonnull SourceType getSourceType()
      If the AnalysisInputLocation is initialized with the SourceType then this method should return that specific SourceType. This is the default implementation and it returns null when no source type is specified.
      Returns:
      returns null as source type
    • getBodyInterceptors

      @Nonnull List<BodyInterceptor> getBodyInterceptors()