Package sootup.apk.frontend.dexpler
Class DexMethodSource
java.lang.Object
sootup.apk.frontend.dexpler.DexMethodSource
- All Implemented Interfaces:
BodySource
-
Constructor Summary
ConstructorsConstructorDescriptionDexMethodSource(Set<Local> locals, MethodSignature methodSignature, MutableControlFlowGraph mutableControlFlowGraph, org.jf.dexlib2.iface.Method method, List<BodyInterceptor> bodyInterceptors, @NonNull View view) DexMethodSource(Set<Local> locals, MethodSignature methodSignature, MutableControlFlowGraph mutableControlFlowGraph, org.jf.dexlib2.iface.Method method, List<BodyInterceptor> bodyInterceptors, @NonNull View view, @Nullable org.jf.dexlib2.iface.value.EncodedValue annotationDefault) A body source with the given body and, for a method of an annotation, its default value.DexMethodSource(org.jf.dexlib2.iface.Method method, org.jf.dexlib2.iface.MultiDexContainer.DexEntry<? extends org.jf.dexlib2.iface.DexFile> dexEntry, ClassType declaringClass, MethodSignature methodSignature, List<BodyInterceptor> bodyInterceptors, @NonNull View view) A body source that converts the code of the method when the body is resolved. -
Method Summary
Modifier and TypeMethodDescriptiongetParameterAnnotations(int paramIndex) Query method parameter declaration annotations (JVMS §4.7.18/§4.7.19) by index.getParameterAnnotations(int paramIndex, String visibility) Returns the annotations of a parameter.@NonNull MethodSignature@NonNull BodyresolveBody(@NonNull Iterable<MethodModifier> modifiers) Returns a filled-out body for the given SootMethod.
-
Constructor Details
-
DexMethodSource
public DexMethodSource(Set<Local> locals, MethodSignature methodSignature, MutableControlFlowGraph mutableControlFlowGraph, org.jf.dexlib2.iface.Method method, List<BodyInterceptor> bodyInterceptors, @NonNull View view) -
DexMethodSource
public DexMethodSource(Set<Local> locals, MethodSignature methodSignature, MutableControlFlowGraph mutableControlFlowGraph, org.jf.dexlib2.iface.Method method, List<BodyInterceptor> bodyInterceptors, @NonNull View view, @Nullable org.jf.dexlib2.iface.value.EncodedValue annotationDefault) A body source with the given body and, for a method of an annotation, its default value. -
DexMethodSource
public DexMethodSource(org.jf.dexlib2.iface.Method method, org.jf.dexlib2.iface.MultiDexContainer.DexEntry<? extends org.jf.dexlib2.iface.DexFile> dexEntry, ClassType declaringClass, MethodSignature methodSignature, List<BodyInterceptor> bodyInterceptors, @NonNull View view) A body source that converts the code of the method when the body is resolved.
-
-
Method Details
-
resolveBody
public @NonNull Body resolveBody(@NonNull Iterable<MethodModifier> modifiers) throws ResolveException, IOException Description copied from interface:BodySourceReturns a filled-out body for the given SootMethod. This may be an expensive operation.- Specified by:
resolveBodyin interfaceBodySource- Parameters:
modifiers- The collection of modifiers which are needed by BodyInterceptors to modify the body accordingly.- Throws:
ResolveExceptionIOException
-
makeSootMethod
-
resolveAnnotationsDefaultValue
- Specified by:
resolveAnnotationsDefaultValuein interfaceBodySource- Returns:
- returns the default value of the Annotation for this method
-
getParameterAnnotations
Description copied from interface:BodySourceQuery method parameter declaration annotations (JVMS §4.7.18/§4.7.19) by index. JSR 308 type annotations (JVMS §4.7.20) attached to METHOD_FORMAL_PARAMETER must not be returned here.- Specified by:
getParameterAnnotationsin interfaceBodySource
-
getParameterAnnotations
Returns the annotations of a parameter. Dex files store BUILD annotations as runtime invisible and RUNTIME annotations as runtime visible ones.- Specified by:
getParameterAnnotationsin interfaceBodySource
-
getSignature
- Specified by:
getSignaturein interfaceBodySource
-