Interface SootClassSource

All Known Implementing Classes:
AsmAnnotationClassSource, DexClassSource, JavaAnnotationSootClassSource, JavaSootClassSource, OverridingJavaClassSource

public interface SootClassSource
SootClassSource represents a Compilation Unit (Interpretation Unit for interpreted languages). e.g. its connecting a file with source(code) to a Signature that a View can resolve. Basic class for retrieving information that is needed to build a SootClass.
Author:
Manuel Benz created on 22.05.18, Ben Hermann, Linghui Luo
  • Method Details

    • buildClass

      SootClass buildClass(@NonNull SourceType sourceType)
      Parameters:
      sourceType - instantiates the Subclass of SootClassSource to create a *SootClass
      Returns:
      a *SootClass
    • getClassType

      ClassType getClassType()
    • getAnalysisInputLocation

      AnalysisInputLocation getAnalysisInputLocation()
    • getSourcePath

      Path getSourcePath()
    • resolveMethods

      @NonNull Collection<? extends SootMethod> resolveMethods() throws ResolveException
      Reads from the source to retrieve its methods. This may be an expensive operation.
      Throws:
      ResolveException
    • resolveFields

      @NonNull Collection<? extends SootField> resolveFields() throws ResolveException
      Reads from the source to retrieve its fields. This may be an expensive operation.
      Throws:
      ResolveException
    • resolveModifiers

      @NonNull Set<ClassModifier> resolveModifiers()
      Reads from the source to retrieve its modifiers. This may be an expensive operation.
    • resolveInterfaces

      @NonNull Set<? extends ClassType> resolveInterfaces()
      Reads from the source to retrieve its directly implemented interfaces. This may be an expensive operation.
    • resolveSuperclass

      @NonNull Optional<? extends ClassType> resolveSuperclass()
      Reads from the source to retrieve its superclass, if present. This may be an expensive operation.
    • resolveOuterClass

      @NonNull Optional<? extends ClassType> resolveOuterClass()
      Reads from the source to retrieve its outer class, if this is an inner class. This may be an expensive operation.
      Returns:
    • resolvePosition

      @NonNull Position resolvePosition()
      Reads from the source to retrieve its position in the source code. This may be an expensive operation.