public class ContextMethodBuilder extends ExceptionMethodBuilder
Modifier and Type | Field and Description |
---|---|
private int |
m_contextSlot
Variable slot for context reference.
|
private java.lang.String |
m_contextType
Context type as accessed by method.
|
private boolean |
m_isStatic
Context type as accessed by method.
|
private int |
m_objectSlot
Variable slot for current object reference.
|
private java.lang.String |
m_objectType
Object type as accessed by method (
null if none). |
EXCEPTION_CONSTRUCTOR_SIGNATURE1, EXCEPTION_CONSTRUCTOR_SIGNATURE2, FRAMEWORK_EXCEPTION_CLASS, m_exceptions, m_generator, m_hashCode, m_instructionBuilder, m_item, m_method, m_targetBranches, m_valueMap, s_argNameLists, SYNTHETIC_ACCESS_FLAG
Constructor and Description |
---|
ContextMethodBuilder(java.lang.String name,
java.lang.String sig,
ClassFile cf,
int access,
int obj,
java.lang.String type,
int ctx,
java.lang.String ctype)
Constructor from signature.
|
ContextMethodBuilder(java.lang.String name,
java.lang.String sig,
ClassFile cf,
int obj,
java.lang.String type,
int ctx,
java.lang.String ctype)
Constructor from signature for public, final method.
|
ContextMethodBuilder(java.lang.String name,
org.apache.bcel.generic.Type ret,
org.apache.bcel.generic.Type[] args,
ClassFile cf,
int access,
int obj,
java.lang.String type,
int ctx,
java.lang.String ctype)
Constructor with types specified.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getFullName()
Construct fully-qualified class and method name for method under
construction.
|
boolean |
isStaticMethod()
Check if method is static.
|
void |
loadContext()
Append instruction to load context to stack.
|
void |
loadContext(java.lang.String type)
Append instruction(s) to load context to stack as specified type.
|
void |
loadObject()
Append instruction to load object to stack.
|
void |
loadObject(java.lang.String type)
Append instruction(s) to load object to stack as specified type.
|
void |
setObjectSlot(int slot)
Set current object slot.
|
void |
storeObject()
Append instruction to store object from stack.
|
defineSlot, freeSlot, getSlot, handleExceptions
addException, addLocal, addMethod, addMethodExceptions, appendAASTORE, appendACONST_NULL, appendALOAD, appendARRAYLENGTH, appendASTORE, appendCall, appendCallInit, appendCallInterface, appendCallStatic, appendCallVirtual, appendCreateArray, appendCreateCast, appendCreateCast, appendCreateNew, appendDCMPG, appendDUP_X1, appendDUP, appendDUP2, appendFCMPG, appendGet, appendGetField, appendGetStatic, appendIASTORE, appendICONST_0, appendICONST_1, appendIF_ICMPNE, appendIFEQ, appendIFGE, appendIFLT, appendIFNE, appendIFNONNULL, appendIFNULL, appendIncrementLocal, appendInstanceOf, appendISUB, appendIXOR, appendLCMP, appendLoadConstant, appendLoadConstant, appendLoadConstant, appendLoadLocal, appendPOP, appendPOP2, appendPut, appendPutField, appendPutStatic, appendReturn, appendReturn, appendReturn, appendStoreLocal, appendSWAP, appendSWAP1For2, appendTargetACONST_NULL, appendTargetCreateNew, appendTargetLoadConstant, appendTargetLoadConstant, appendTargetNOP, appendThrow, appendUnconditionalBranch, codeComplete, createLocal, getAccessFlags, getFirstInstruction, getItem, getKeyValue, getLastInstruction, getMethod, getName, getSignature, hashCode, initStackState, initStackState, initStackState, internalAppendCreateNew, isStackTopLong, setAccessFlags, setKeyValue, setTarget, targetNext, targetNext
computeMethodHash, equals, getClassFile, makeAccessible
private int m_objectSlot
private java.lang.String m_objectType
null
if none).private int m_contextSlot
private java.lang.String m_contextType
private final boolean m_isStatic
public ContextMethodBuilder(java.lang.String name, org.apache.bcel.generic.Type ret, org.apache.bcel.generic.Type[] args, ClassFile cf, int access, int obj, java.lang.String type, int ctx, java.lang.String ctype)
name
- method name to be builtret
- method return typeargs
- types of argumentscf
- owning class file informationaccess
- flags for method accessobj
- variable slot for current object (negative value if to be
defined later)type
- current object type as defined in method (null
if none)ctx
- variable slot for marshalling/unmarshalling contextctype
- context type as defined in methodpublic ContextMethodBuilder(java.lang.String name, java.lang.String sig, ClassFile cf, int access, int obj, java.lang.String type, int ctx, java.lang.String ctype)
name
- method name to be builtsig
- method signaturecf
- owning class file informationaccess
- flags for method accessobj
- variable slot for current object (negative value if to be
defined later)type
- current object typectx
- variable slot for marshalling/unmarshalling contextctype
- context type as defined in methodpublic ContextMethodBuilder(java.lang.String name, java.lang.String sig, ClassFile cf, int obj, java.lang.String type, int ctx, java.lang.String ctype)
name
- method name to be builtsig
- method signaturecf
- owning class file informationobj
- variable slot for current object (negative value if to be
defined later)type
- current object typectx
- variable slot for marshalling/unmarshalling contextctype
- context type as defined in methodpublic void setObjectSlot(int slot)
slot
- local variable slot for current objectpublic void loadObject()
public void storeObject()
public void loadObject(java.lang.String type)
type
- loaded type expected on stackpublic void loadContext()
public void loadContext(java.lang.String type)
type
- loaded type expected on stackpublic boolean isStaticMethod()
true
if static, false
if notpublic java.lang.String getFullName()