public abstract class ShrikeBTMethod extends Object implements IMethod, com.ibm.wala.shrikeBT.BytecodeConstants
| Modifier and Type | Class and Description |
|---|---|
protected static class |
ShrikeBTMethod.BytecodeInfo |
IMethod.SourcePositionContextItem.Value<T>| Modifier and Type | Field and Description |
|---|---|
protected IClass |
declaringClass
A wrapper around the declaring class.
|
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 and Description |
|---|
ShrikeBTMethod(IClass klass) |
| Modifier and Type | Method and Description |
|---|---|
void |
clearCaches()
Clear all optional cached data associated with this class.
|
boolean |
equals(Object obj) |
Iterator |
getArraysRead() |
Iterator<TypeReference> |
getArraysWritten() |
protected ShrikeBTMethod.BytecodeInfo |
getBCInfo() |
int |
getBytecodeIndex(int instructionIndex)
Return the program counter (bytecode index) for a particular Shrike instruction index.
|
protected abstract byte[] |
getBytecodes() |
BytecodeStream |
getBytecodeStream()
Method getBytecodeStream.
|
Collection<CallSiteReference> |
getCallSites() |
Iterator |
getCastTypes() |
Set<TypeReference> |
getCaughtExceptionTypes() |
TypeReference[] |
getDeclaredExceptions()
Clients should not modify the returned array.
|
protected abstract String[] |
getDeclaredExceptionTypeNames() |
IClass |
getDeclaringClass()
Return the object that represents the declaring class
for this member.
|
Descriptor |
getDescriptor()
something like: (IILjava.lang.String;SLjava.sql.Date;)Ljava.lang.Integer;
|
Iterator<FieldReference> |
getFieldsRead() |
Iterator<FieldReference> |
getFieldsWritten() |
com.ibm.wala.shrikeBT.ExceptionHandler[][] |
getHandlers() |
Collection<TypeReference> |
getImplicitExceptionTypes() |
com.ibm.wala.shrikeBT.IInstruction[] |
getInstructions() |
int |
getLineNumber(int bcIndex)
END Custom change: precise bytecode positions
|
abstract String |
getLocalVariableName(int bcIndex,
int localNumber) |
abstract int |
getMaxLocals() |
abstract int |
getMaxStackHeight() |
protected abstract String |
getMethodName() |
protected abstract String |
getMethodSignature() |
protected abstract int |
getModifiers() |
Atom |
getName() |
int |
getNumberOfParameters()
Method getNumberOfParameters.
|
int |
getNumShrikeInstructions()
Return the number of Shrike instructions for this method.
|
IMethod.SourcePosition |
getParameterSourcePosition(int paramNum) |
TypeReference |
getParameterType(int i)
By convention, for a non-static method, getParameterType(0) is the this pointer
|
MethodReference |
getReference() |
Selector |
getSelector()
something like: foo(Ljava/langString;)Ljava/lang/Class;
|
String |
getSignature()
something like: com.foo.bar.createLargeOrder(IILjava.lang.String;SLjava.sql.Date;)Ljava.lang.Integer;
|
IMethod.SourcePosition |
getSourcePosition(int bcIndex)
BEGIN Custom change: precise bytecode positions
|
abstract boolean |
hasExceptionHandler() |
int |
hashCode() |
abstract boolean |
hasLocalVariableTable() |
boolean |
hasMonitorOp() |
boolean |
isAbstract()
Is this method abstract?
|
boolean |
isBridge()
Is this method a bridge method? See JLS 3rd Edition 15.12.4.5
|
boolean |
isClinit()
Is this method a class initializer?
|
boolean |
isFinal()
Is this method final?
|
boolean |
isInit()
Is this method an object initializer?
|
boolean |
isNative()
Is this method native?
|
boolean |
isPrivate()
Is this method private?
|
boolean |
isProtected()
Is this method protected?
|
boolean |
isPublic()
Is this method public?
|
boolean |
isStatic()
Is this member static?
|
boolean |
isSynchronized()
Is this method synchronized?
|
boolean |
isSynthetic()
Did someone synthesize this method? (As opposed to reading it from a class file)
|
protected abstract com.ibm.wala.shrikeBT.Decoder |
makeDecoder()
Find the decoder object for this method, or create one if necessary.
|
protected abstract void |
processDebugInfo(ShrikeBTMethod.BytecodeInfo bcInfo)
Walk through the bytecodes and collect trivial information.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetReturnTypegetAnnotationsgetClassHierarchyprotected final IClass declaringClass
public ShrikeBTMethod(IClass klass)
protected ShrikeBTMethod.BytecodeInfo getBCInfo() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic int getBytecodeIndex(int instructionIndex)
throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic int getNumShrikeInstructions()
throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic Collection<CallSiteReference> getCallSites() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic Collection<TypeReference> getImplicitExceptionTypes() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic boolean hasMonitorOp()
throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic Iterator<FieldReference> getFieldsWritten() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic Iterator<FieldReference> getFieldsRead() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic Iterator getArraysRead() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic Iterator<TypeReference> getArraysWritten() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic Iterator getCastTypes() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionprotected abstract byte[] getBytecodes()
public BytecodeStream getBytecodeStream()
protected abstract String getMethodName() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionprotected abstract String getMethodSignature() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic MethodReference getReference()
getReference in interface IMethodpublic boolean isClinit()
IMethodpublic boolean isInit()
IMethodprotected abstract int getModifiers()
public boolean isNative()
IMethodpublic boolean isAbstract()
IMethodisAbstract in interface IMethodpublic boolean isPrivate()
IMethodpublic boolean isProtected()
IMethodisProtected in interface IMethodpublic boolean isPublic()
IMethodpublic boolean isFinal()
IMethodpublic boolean isBridge()
IMethodpublic boolean isSynchronized()
IMethodisSynchronized in interface IMethodpublic boolean isStatic()
IMemberpublic boolean isSynthetic()
IMethodisSynthetic in interface IMethodpublic IClass getDeclaringClass()
IMembergetDeclaringClass in interface IMemberprotected abstract com.ibm.wala.shrikeBT.Decoder makeDecoder()
protected abstract void processDebugInfo(ShrikeBTMethod.BytecodeInfo bcInfo) throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic String toString()
toString in class ObjectObject.toString()public boolean equals(Object obj)
equals in class ObjectObject.equals(Object)public int hashCode()
hashCode in class ObjectObject.hashCode()public abstract int getMaxLocals()
public abstract int getMaxStackHeight()
public Atom getName()
public Descriptor getDescriptor()
IMethodgetDescriptor in interface IMethodpublic com.ibm.wala.shrikeBT.IInstruction[] getInstructions()
throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic com.ibm.wala.shrikeBT.ExceptionHandler[][] getHandlers()
throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic TypeReference getParameterType(int i)
getParameterType in interface IMethodpublic int getNumberOfParameters()
getNumberOfParameters in interface IMethodpublic abstract boolean hasExceptionHandler()
hasExceptionHandler in interface IMethodpublic TypeReference[] getDeclaredExceptions() throws com.ibm.wala.shrikeCT.InvalidClassFileException
getDeclaredExceptions in interface IMethodcom.ibm.wala.shrikeCT.InvalidClassFileExceptionIMethod.getDeclaredExceptions()protected abstract String[] getDeclaredExceptionTypeNames() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic IMethod.SourcePosition getSourcePosition(int bcIndex) throws com.ibm.wala.shrikeCT.InvalidClassFileException
getSourcePosition in interface IMethodcom.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic IMethod.SourcePosition getParameterSourcePosition(int paramNum) throws com.ibm.wala.shrikeCT.InvalidClassFileException
getParameterSourcePosition in interface IMethodcom.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic int getLineNumber(int bcIndex)
getLineNumber in interface IMethodpublic Set<TypeReference> getCaughtExceptionTypes() throws com.ibm.wala.shrikeCT.InvalidClassFileException
com.ibm.wala.shrikeCT.InvalidClassFileExceptionpublic String getSignature()
IMethodgetSignature in interface IMethodpublic Selector getSelector()
IMethodgetSelector in interface IMethodpublic abstract String getLocalVariableName(int bcIndex, int localNumber)
getLocalVariableName in interface IMethodpublic abstract boolean hasLocalVariableTable()
hasLocalVariableTable in interface IMethodpublic void clearCaches()
Copyright © 2015. All rights reserved.