Class ShrikeCTMethod
java.lang.Object
com.ibm.wala.classLoader.ShrikeBTMethod
com.ibm.wala.classLoader.ShrikeCTMethod
- All Implemented Interfaces:
IBytecodeMethod<IInstruction>
,IMember
,IMethod
,ContextItem
,IClassHierarchyDweller
,BytecodeConstants
A wrapper around a Shrike object that represents a method
-
Nested Class Summary
Nested classes/interfaces inherited from class com.ibm.wala.classLoader.ShrikeBTMethod
ShrikeBTMethod.BytecodeInfo
Nested classes/interfaces inherited from interface com.ibm.wala.ipa.callgraph.ContextItem
ContextItem.Value<T>
Nested classes/interfaces inherited from interface com.ibm.wala.classLoader.IMethod
IMethod.SourcePosition
-
Field Summary
Fields inherited from class com.ibm.wala.classLoader.ShrikeBTMethod
declaringClass
Fields inherited from interface com.ibm.wala.shrike.shrikeBT.BytecodeConstants
JBC_aaload, JBC_aastore, JBC_aconst_null, JBC_aload, JBC_aload_0, JBC_aload_1, JBC_aload_2, JBC_aload_3, JBC_anewarray, JBC_areturn, JBC_arraylength, JBC_astore, JBC_astore_0, JBC_astore_1, JBC_astore_2, JBC_astore_3, JBC_athrow, JBC_baload, JBC_bastore, JBC_bipush, JBC_caload, JBC_castore, JBC_checkcast, JBC_d2f, JBC_d2i, JBC_d2l, JBC_dadd, JBC_daload, JBC_dastore, JBC_dcmpg, JBC_dcmpl, JBC_dconst_0, JBC_dconst_1, JBC_ddiv, JBC_dload, JBC_dload_0, JBC_dload_1, JBC_dload_2, JBC_dload_3, JBC_dmul, JBC_dneg, JBC_drem, JBC_dreturn, JBC_dstore, JBC_dstore_0, JBC_dstore_1, JBC_dstore_2, JBC_dstore_3, JBC_dsub, JBC_dup, JBC_dup_x1, JBC_dup_x2, JBC_dup2, JBC_dup2_x1, JBC_dup2_x2, JBC_f2d, JBC_f2i, JBC_f2l, JBC_fadd, JBC_faload, JBC_fastore, JBC_fcmpg, JBC_fcmpl, JBC_fconst_0, JBC_fconst_1, JBC_fconst_2, JBC_fdiv, JBC_fload, JBC_fload_0, JBC_fload_1, JBC_fload_2, JBC_fload_3, JBC_fmul, JBC_fneg, JBC_frem, JBC_freturn, JBC_fstore, JBC_fstore_0, JBC_fstore_1, JBC_fstore_2, JBC_fstore_3, JBC_fsub, JBC_getfield, JBC_getstatic, JBC_goto, JBC_goto_w, JBC_i2d, JBC_i2f, JBC_i2l, JBC_iadd, JBC_iaload, JBC_iand, JBC_iastore, JBC_iconst_0, JBC_iconst_1, JBC_iconst_2, JBC_iconst_3, JBC_iconst_4, JBC_iconst_5, JBC_iconst_m1, JBC_idiv, JBC_if_acmpeq, JBC_if_acmpne, JBC_if_icmpeq, JBC_if_icmpge, JBC_if_icmpgt, JBC_if_icmple, JBC_if_icmplt, JBC_if_icmpne, JBC_ifeq, JBC_ifge, JBC_ifgt, JBC_ifle, JBC_iflt, JBC_ifne, JBC_ifnonnull, JBC_ifnull, JBC_iinc, JBC_iload, JBC_iload_0, JBC_iload_1, JBC_iload_2, JBC_iload_3, JBC_impdep1, JBC_impdep2, JBC_imul, JBC_ineg, JBC_instanceof, JBC_int2byte, JBC_int2char, JBC_int2short, JBC_invokeinterface, JBC_invokespecial, JBC_invokestatic, JBC_invokevirtual, JBC_ior, JBC_irem, JBC_ireturn, JBC_ishl, JBC_ishr, JBC_istore, JBC_istore_0, JBC_istore_1, JBC_istore_2, JBC_istore_3, JBC_isub, JBC_iushr, JBC_ixor, JBC_jsr, JBC_jsr_w, JBC_l2d, JBC_l2f, JBC_l2i, JBC_ladd, JBC_laload, JBC_land, JBC_lastore, JBC_lcmp, JBC_lconst_0, JBC_lconst_1, JBC_ldc, JBC_ldc_w, JBC_ldc2_w, JBC_ldiv, JBC_length, JBC_lload, JBC_lload_0, JBC_lload_1, JBC_lload_2, JBC_lload_3, JBC_lmul, JBC_lneg, JBC_lookupswitch, JBC_lor, JBC_lrem, JBC_lreturn, JBC_lshl, JBC_lshr, JBC_lstore, JBC_lstore_0, JBC_lstore_1, JBC_lstore_2, JBC_lstore_3, JBC_lsub, JBC_lushr, JBC_lxor, JBC_monitorenter, JBC_monitorexit, JBC_multianewarray, JBC_name, JBC_new, JBC_newarray, JBC_nop, JBC_pop, JBC_pop2, JBC_putfield, JBC_putstatic, JBC_ret, JBC_return, JBC_saload, JBC_sastore, JBC_sipush, JBC_swap, JBC_tableswitch, JBC_wide, JBC_xxxunusedxxx
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionGet the annotations on this member, if anygetAnnotations
(boolean runtimeInvisible) byte[]
protected String[]
getLocalVariableName
(int bcIndex, int localNumber) int
int
protected String
protected String
UNDER CONSTRUCTIONprotected int
get annotations on parameters as an array of Collections, where each array element gives the annotations on the corresponding parameter.read the runtime-invisible annotations from the class fileread the runtime-visible annotations from the class filegetTypeAnnotationsAtCode
(boolean runtimeInvisible) getTypeAnnotationsAtMethodInfo
(boolean runtimeInvisible) boolean
boolean
protected Decoder
Find the decoder object for this method, or create one if necessary.protected void
Walk through the bytecodes and collect trivial information.Methods inherited from class com.ibm.wala.classLoader.ShrikeBTMethod
clearCaches, equals, getArraysRead, getArraysWritten, getBCInfo, getBytecodeIndex, getBytecodeStream, getCallSites, getCastTypes, getCaughtExceptionTypes, getDeclaredExceptions, getDeclaringClass, getDescriptor, getFieldsRead, getFieldsWritten, getHandlers, getImplicitExceptionTypes, getInstructionIndex, getInstructions, getLineNumber, getName, getNewSites, getNumberOfParameters, getNumShrikeInstructions, getParameterSourcePosition, getParameterType, getReference, getSelector, getSignature, getSourcePosition, hashCode, hasMonitorOp, isAbstract, isAnnotation, isBridge, isClinit, isEnum, isFinal, isInit, isModule, isNative, isPrivate, isProtected, isPublic, isStatic, isSynchronized, isSynthetic, isWalaSynthetic, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.ibm.wala.classLoader.IBytecodeMethod
getArraysWritten, getBytecodeIndex, getCallSites, getFieldsRead, getFieldsWritten, getHandlers, getInstructionIndex, getInstructions, getNewSites
Methods inherited from interface com.ibm.wala.classLoader.IMember
getDeclaringClass, getName, isStatic
Methods inherited from interface com.ibm.wala.classLoader.IMethod
getDeclaredExceptions, getDescriptor, getLineNumber, getNumberOfDefaultParameters, getNumberOfParameters, getParameterSourcePosition, getParameterType, getReference, getSelector, getSignature, getSourcePosition, isAbstract, isAnnotation, isBridge, isClinit, isEnum, isFinal, isInit, isModule, isNative, isPrivate, isProtected, isPublic, isSynchronized, isSynthetic, isWalaSynthetic
-
Constructor Details
-
ShrikeCTMethod
-
-
Method Details
-
getBytecodes
public byte[] getBytecodes()- Specified by:
getBytecodes
in classShrikeBTMethod
-
getMethodName
- Specified by:
getMethodName
in classShrikeBTMethod
- Throws:
InvalidClassFileException
-
getMethodSignature
- Specified by:
getMethodSignature
in classShrikeBTMethod
- Throws:
InvalidClassFileException
-
getModifiers
protected int getModifiers()- Specified by:
getModifiers
in classShrikeBTMethod
-
makeDecoder
Description copied from class:ShrikeBTMethod
Find the decoder object for this method, or create one if necessary.- Specified by:
makeDecoder
in classShrikeBTMethod
- Returns:
- null if the method has no code.
-
getMaxLocals
public int getMaxLocals()- Specified by:
getMaxLocals
in classShrikeBTMethod
- See Also:
-
getMaxStackHeight
public int getMaxStackHeight()- Specified by:
getMaxStackHeight
in classShrikeBTMethod
-
hasExceptionHandler
public boolean hasExceptionHandler()- Specified by:
hasExceptionHandler
in interfaceIMethod
- Specified by:
hasExceptionHandler
in classShrikeBTMethod
- Returns:
- true iff this method has at least one exception handler
-
getDeclaredExceptionTypeNames
- Specified by:
getDeclaredExceptionTypeNames
in classShrikeBTMethod
- Throws:
InvalidClassFileException
-
processDebugInfo
protected void processDebugInfo(ShrikeBTMethod.BytecodeInfo bcInfo) throws InvalidClassFileException Description copied from class:ShrikeBTMethod
Walk through the bytecodes and collect trivial information.- Specified by:
processDebugInfo
in classShrikeBTMethod
- Throws:
InvalidClassFileException
-
getLocalVariableName
- Specified by:
getLocalVariableName
in interfaceIMethod
- Specified by:
getLocalVariableName
in classShrikeBTMethod
- Returns:
- the (source code) name of the local variable of a given number at the specified program counter, or null if the information is not available.
-
hasLocalVariableTable
public boolean hasLocalVariableTable()- Specified by:
hasLocalVariableTable
in interfaceIMethod
- Specified by:
hasLocalVariableTable
in classShrikeBTMethod
- Returns:
- true iff the local variable table information for this method is available
-
getReturnType
- Specified by:
getReturnType
in interfaceIMethod
- Returns:
- the name of the return type for this method
-
getClassHierarchy
- Specified by:
getClassHierarchy
in interfaceIClassHierarchyDweller
-
getMethodTypeSignature
UNDER CONSTRUCTION- Throws:
InvalidClassFileException
-
getRuntimeInvisibleAnnotations
read the runtime-invisible annotations from the class file- Throws:
InvalidClassFileException
-
getRuntimeVisibleAnnotations
read the runtime-visible annotations from the class file- Throws:
InvalidClassFileException
-
getAnnotations
public Collection<Annotation> getAnnotations(boolean runtimeInvisible) throws InvalidClassFileException - Specified by:
getAnnotations
in interfaceIBytecodeMethod<IInstruction>
- Throws:
InvalidClassFileException
-
getTypeAnnotationsAtMethodInfo
public Collection<TypeAnnotation> getTypeAnnotationsAtMethodInfo(boolean runtimeInvisible) throws InvalidClassFileException - Throws:
InvalidClassFileException
-
getTypeAnnotationsAtCode
public Collection<TypeAnnotation> getTypeAnnotationsAtCode(boolean runtimeInvisible) throws InvalidClassFileException - Throws:
InvalidClassFileException
-
getAnnotations
Description copied from interface:IMember
Get the annotations on this member, if any- Specified by:
getAnnotations
in interfaceIMember
-
getParameterAnnotations
get annotations on parameters as an array of Collections, where each array element gives the annotations on the corresponding parameter. Note that the 'this' parameter for an instance method cannot have annotations.- Specified by:
getParameterAnnotations
in interfaceIBytecodeMethod<IInstruction>
-
getIndirectionData
- Specified by:
getIndirectionData
in interfaceIBytecodeMethod<IInstruction>
- Returns:
- information about any indirect uses of local variables
-