public class MethodGenerator extends org.apache.bcel.generic.MethodGen implements Constants
Modifier and Type | Class and Description |
---|---|
protected class |
MethodGenerator.LocalVariableRegistry
Keeps track of all local variables used in the method.
|
Modifier and Type | Field and Description |
---|---|
protected static int |
INVALID_INDEX |
ABSOLUTE_ITERATOR, ACC_FINAL, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ADD_ATTRIBUTE, ADD_ATTRIBUTE_SIG, ADD_ITERATOR, ADD_ITERATOR_SIG, ADD_PARAMETER, ADD_PARAMETER_SIG, APPLY_TEMPLATES, ATTR_SET_SIG, ATTRIBUTE_LIST_FIELD, ATTRIBUTE_LIST_IMPL_CLASS, ATTRIBUTE_LIST_IMPL_SIG, ATTRIBUTES_SIG, BASIS_LIBRARY_CLASS, BOOLEAN_CLASS, BOOLEAN_VALUE, BOOLEAN_VALUE_SIG, CACHED_NODE_LIST_ITERATOR_CLASS, CHARACTERS, CHARACTERS_SIG, CHARACTERSW, CHARACTERSW_SIG, CLEAR_ATTRIBUTES, CLEAR_ATTRIBUTES_SIG, COLLATOR_CLASS, COLLATOR_SIG, COMPILER_PACKAGE, CURRENT_NODE_LIST_FILTER, CURRENT_NODE_LIST_FILTER_SIG, CURRENT_NODE_LIST_ITERATOR, CURRENT_NODE_LIST_ITERATOR_SIG, DEFAULT_NODE_COUNTER, DEFAULT_NODE_COUNTER_SIG, DOCUMENT_PNAME, DOM_ADAPTER_CLASS, DOM_ADAPTER_SIG, DOM_FIELD, DOM_IMPL, DOM_IMPL_CLASS, DOM_IMPL_SIG, DOM_INTF, DOM_INTF_SIG, DOM_PNAME, DOUBLE_CLASS, DOUBLE_SIG, DOUBLE_VALUE, DOUBLE_VALUE_SIG, DUP_FILTERED_ITERATOR, EMPTYATTR_FIELD, EMPTYSTRING, ERROR, EXPAND_STYLESHEET_QNAME_REF, EXPAND_STYLESHEET_QNAME_SIG, FALLBACK_CLASS, FATAL, FILTER_INTERFACE, FILTER_INTERFACE_SIG, FILTER_ITERATOR, FILTER_STEP_ITERATOR, FORMAT_SYMBOLS_FIELD, GET_ATTRIBUTE_VALUE, GET_ATTRIBUTE_VALUE_SIG, GET_CHILDREN, GET_CHILDREN_SIG, GET_ELEMENT_VALUE, GET_ELEMENT_VALUE_SIG, GET_ITERATOR_SIG, GET_NODE_NAME, GET_NODE_NAME_SIG, GET_NODE_TYPE, GET_NODE_TYPE_SIG, GET_NODE_VALUE, GET_NODE_VALUE_ITERATOR, GET_NODE_VALUE_ITERATOR_SIG, GET_NODE_VALUE_SIG, GET_PARAMETER, GET_PARAMETER_SIG, GET_PARENT, GET_PARENT_SIG, GET_TYPED_CHILDREN, GET_TYPED_CHILDREN_SIG, GET_UNPARSED_ENTITY_URI, GET_UNPARSED_ENTITY_URI_SIG, HAS_ATTRIBUTE, HAS_ATTRIBUTE_SIG, HASIDCALL_INDEX, HASIDCALL_INDEX_SIG, INT_VALUE, INT_VALUE_SIG, INTEGER_CLASS, INTEGER_SIG, INTERNAL, INVOKE_METHOD, ITERATOR_FIELD_SIG, ITERATOR_PNAME, KEY_INDEX_CLASS, KEY_INDEX_ITERATOR_SIG, KEY_INDEX_SIG, LAST_INDEX, LOAD_DOCUMENT_CLASS, LOCALE_CLASS, LOCALE_SIG, LOOKUP_STYLESHEET_QNAME_NS_REF, LOOKUP_STYLESHEET_QNAME_NS_SIG, MAKE_NODE, MAKE_NODE_LIST, MAKE_NODE_LIST_SIG, MAKE_NODE_LIST_SIG2, MAKE_NODE_SIG, MAKE_NODE_SIG2, MATCHING_ITERATOR, MATH_CLASS, MULTI_DOM_CLASS, MULTI_DOM_SIG, NAMES_INDEX, NAMES_INDEX_SIG, NAMESPACE_FEATURE, NAMESPACE_INDEX, NAMESPACE_INDEX_SIG, NEXT, NEXT_SIG, NEXTID, NODE, NODE_COUNTER, NODE_COUNTER_SIG, NODE_FIELD, NODE_FIELD_SIG, NODE_ITERATOR, NODE_ITERATOR_BASE, NODE_ITERATOR_SIG, NODE_PNAME, NODE_SIG, NODE_SORT_FACTORY, NODE_SORT_FACTORY_SIG, NODE_SORT_RECORD, NODE_SORT_RECORD_SIG, NS_ANCESTORS_INDEX_SIG, NTH_ITERATOR_CLASS, OBJECT_CLASS, OBJECT_SIG, ORDER_ITERATOR, ORDER_ITERATOR_SIG, OUTPUT_BASE, OUTPUT_HANDLER, OUTPUT_HANDLER_SIG, POP_PARAM_FRAME, POP_PARAM_FRAME_SIG, POSITION_INDEX, PREFIX_URIS_ARRAY_SIG, PREFIX_URIS_IDX_SIG, PUSH_PARAM_FRAME, PUSH_PARAM_FRAME_SIG, REDIRECT_URI, RESET, RESET_SIG, RTF_INITIAL_SIZE, RUNTIME_NODE_CLASS, RUNTIME_PACKAGE, SAX_IMPL, SAX_IMPL_CLASS, SAX_IMPL_SIG, SET_START_NODE, SET_START_NODE_SIG, SINGLETON_ITERATOR, SORT_ITERATOR, SORT_ITERATOR_SIG, STATIC_CHAR_DATA_FIELD, STATIC_CHAR_DATA_FIELD_SIG, STATIC_NAMES_ARRAY_FIELD, STATIC_NAMESPACE_ARRAY_FIELD, STATIC_NS_ANCESTORS_ARRAY_FIELD, STATIC_PREFIX_URIS_ARRAY_FIELD, STATIC_PREFIX_URIS_IDX_ARRAY_FIELD, STATIC_TYPES_ARRAY_FIELD, STATIC_URIS_ARRAY_FIELD, STEP_ITERATOR_CLASS, STREAM_XML_OUTPUT, STRING, STRING_BUFFER_CLASS, STRING_BUFFER_SIG, STRING_CLASS, STRING_SIG, STRING_TO_INT, STRING_TO_INT_SIG, STRING_TO_REAL, STRING_TO_REAL_SIG, STRING_VALUE_HANDLER, STRING_VALUE_HANDLER_SIG, STRING_WRITER, STRIP_SPACE, STRIP_SPACE_INTF, STRIP_SPACE_PARAMS, STRIP_SPACE_SIG, TRANSLET_CLASS, TRANSLET_FIELD, TRANSLET_FIELD_SIG, TRANSLET_INTF, TRANSLET_INTF_SIG, TRANSLET_OUTPUT_BASE, TRANSLET_OUTPUT_INTERFACE, TRANSLET_OUTPUT_PNAME, TRANSLET_OUTPUT_SIG, TRANSLET_PNAME, TRANSLET_SIG, TRANSLET_URI, TRANSLET_VERSION_INDEX, TRANSLET_VERSION_INDEX_SIG, TYPES_INDEX, TYPES_INDEX_SIG, UNION_ITERATOR_CLASS, UNION_ITERATOR_SIG, UNSUPPORTED, URIS_INDEX, URIS_INDEX_SIG, WARNING, WRITER_SIG, XHTML_URI, XMLNS_PREFIX, XMLNS_STRING, XMLNS_URI, XSLT_PACKAGE, XSLT_URI
AALOAD, AASTORE, ACONST_NULL, ALOAD_0, ALOAD_1, ALOAD_2, ARETURN, ARRAYLENGTH, ASTORE_0, ASTORE_1, ASTORE_2, ATHROW, BALOAD, BASTORE, bla, CALOAD, CASTORE, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DMUL, DNEG, DREM, DRETURN, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FMUL, FNEG, FREM, FRETURN, FSUB, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, ILOAD_0, ILOAD_1, ILOAD_2, IMUL, INEG, INSTRUCTIONS, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE_0, ISTORE_1, ISTORE_2, ISUB, IUSHR, IXOR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDIV, LMUL, LNEG, LOR, LREM, LRETURN, LSHL, LSHR, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, NOP, POP, POP2, RETURN, SALOAD, SASTORE, SWAP, THIS
Constructor and Description |
---|
MethodGenerator(int access_flags,
org.apache.bcel.generic.Type return_type,
org.apache.bcel.generic.Type[] arg_types,
String[] arg_names,
String method_name,
String class_name,
org.apache.bcel.generic.InstructionList il,
org.apache.bcel.generic.ConstantPoolGen cpg) |
Modifier and Type | Method and Description |
---|---|
void |
addInstructionList(Pattern pattern,
org.apache.bcel.generic.InstructionList ilist)
Add a pre-compiled pattern to this mode.
|
org.apache.bcel.generic.LocalVariableGen |
addLocalVariable(String name,
org.apache.bcel.generic.Type type,
org.apache.bcel.generic.InstructionHandle start,
org.apache.bcel.generic.InstructionHandle end)
Allocates a local variable.
|
org.apache.bcel.generic.LocalVariableGen |
addLocalVariable2(String name,
org.apache.bcel.generic.Type type,
org.apache.bcel.generic.InstructionHandle start) |
org.apache.bcel.generic.Instruction |
attribute() |
org.apache.bcel.generic.Instruction |
endDocument() |
org.apache.bcel.generic.Instruction |
endElement() |
org.apache.bcel.generic.InstructionList |
getInstructionList(Pattern pattern)
Get the instruction list for a pre-compiled pattern.
|
int |
getLocalIndex(String name) |
org.apache.bcel.generic.LocalVariableGen |
getLocalVariable(String name) |
protected org.apache.bcel.classfile.Method |
getThisMethod() |
org.apache.bcel.generic.Instruction |
loadContextNode()
by default context node is the same as current node.
|
org.apache.bcel.generic.Instruction |
loadCurrentNode() |
org.apache.bcel.generic.Instruction |
loadDOM() |
org.apache.bcel.generic.Instruction |
loadHandler() |
org.apache.bcel.generic.Instruction |
loadIterator() |
void |
markChunkEnd()
Mark the end of an outlineable chunk of code.
|
void |
markChunkStart()
Mark the end of the method's
InstructionList as the start of an outlineable chunk of code. |
org.apache.bcel.generic.Instruction |
namespace() |
org.apache.bcel.generic.Instruction |
nextNode() |
org.apache.bcel.classfile.Method[] |
outlineChunks(ClassGenerator classGen,
int originalMethodSize)
Breaks up the IL for this
MethodGenerator into separate
outlined methods so that no method exceeds the 64KB limit on the length
of the byte code associated with a method. |
void |
removeLocalVariable(org.apache.bcel.generic.LocalVariableGen lvg) |
org.apache.bcel.generic.Instruction |
reset() |
void |
setMaxLocals() |
org.apache.bcel.generic.Instruction |
setStartNode() |
org.apache.bcel.generic.Instruction |
startDocument() |
org.apache.bcel.generic.Instruction |
startElement() |
org.apache.bcel.generic.Instruction |
storeContextNode() |
org.apache.bcel.generic.Instruction |
storeCurrentNode() |
org.apache.bcel.generic.Instruction |
storeDOM() |
org.apache.bcel.generic.Instruction |
storeHandler() |
org.apache.bcel.generic.Instruction |
storeIterator() |
org.apache.bcel.generic.Instruction |
uniqueAttribute() |
addCodeAttribute, addException, addExceptionHandler, addLineNumber, addLocalVariable, addObserver, copy, equals, getArgumentName, getArgumentNames, getArgumentType, getArgumentTypes, getClassName, getCodeAttributes, getComparator, getExceptionHandlers, getExceptions, getInstructionList, getLineNumbers, getLineNumberTable, getLocalVariables, getLocalVariableTable, getMaxLocals, getMaxStack, getMaxStack, getMethod, getReturnType, getSignature, hashCode, removeCodeAttribute, removeCodeAttributes, removeException, removeExceptionHandler, removeExceptionHandlers, removeExceptions, removeLineNumber, removeLineNumbers, removeLocalVariables, removeNOPs, removeObserver, setArgumentName, setArgumentNames, setArgumentType, setArgumentTypes, setClassName, setComparator, setInstructionList, setMaxLocals, setMaxStack, setMaxStack, setReturnType, stripAttributes, toString, update
addAttribute, clone, getAttributes, getConstantPool, getName, getType, removeAttribute, removeAttributes, setConstantPool, setName, setType
getAccessFlags, getModifiers, isAbstract, isAbstract, isAnnotation, isAnnotation, isEnum, isEnum, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isStrictfp, isStrictfp, isSynchronized, isSynchronized, isSynthetic, isSynthetic, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags, setModifiers
protected static final int INVALID_INDEX
public org.apache.bcel.generic.LocalVariableGen addLocalVariable(String name, org.apache.bcel.generic.Type type, org.apache.bcel.generic.InstructionHandle start, org.apache.bcel.generic.InstructionHandle end)
addLocalVariable
in class org.apache.bcel.generic.MethodGen
public org.apache.bcel.generic.LocalVariableGen addLocalVariable2(String name, org.apache.bcel.generic.Type type, org.apache.bcel.generic.InstructionHandle start)
public void removeLocalVariable(org.apache.bcel.generic.LocalVariableGen lvg)
removeLocalVariable
in class org.apache.bcel.generic.MethodGen
public org.apache.bcel.generic.Instruction loadDOM()
public org.apache.bcel.generic.Instruction storeDOM()
public org.apache.bcel.generic.Instruction storeHandler()
public org.apache.bcel.generic.Instruction loadHandler()
public org.apache.bcel.generic.Instruction storeIterator()
public org.apache.bcel.generic.Instruction loadIterator()
public final org.apache.bcel.generic.Instruction setStartNode()
public final org.apache.bcel.generic.Instruction reset()
public final org.apache.bcel.generic.Instruction nextNode()
public final org.apache.bcel.generic.Instruction startElement()
public final org.apache.bcel.generic.Instruction endElement()
public final org.apache.bcel.generic.Instruction startDocument()
public final org.apache.bcel.generic.Instruction endDocument()
public final org.apache.bcel.generic.Instruction attribute()
public final org.apache.bcel.generic.Instruction uniqueAttribute()
public final org.apache.bcel.generic.Instruction namespace()
public org.apache.bcel.generic.Instruction loadCurrentNode()
public org.apache.bcel.generic.Instruction storeCurrentNode()
public org.apache.bcel.generic.Instruction loadContextNode()
public org.apache.bcel.generic.Instruction storeContextNode()
public int getLocalIndex(String name)
public org.apache.bcel.generic.LocalVariableGen getLocalVariable(String name)
public void setMaxLocals()
setMaxLocals
in class org.apache.bcel.generic.MethodGen
public void addInstructionList(Pattern pattern, org.apache.bcel.generic.InstructionList ilist)
public org.apache.bcel.generic.InstructionList getInstructionList(Pattern pattern)
public org.apache.bcel.classfile.Method[] outlineChunks(ClassGenerator classGen, int originalMethodSize)
MethodGenerator
into separate
outlined methods so that no method exceeds the 64KB limit on the length
of the byte code associated with a method.classGen
- The ClassGen
with which the generated methods
will be associatedoriginalMethodSize
- The number of bytes of bytecode represented by
the InstructionList
of this methodMethod
s and the original
method itselfpublic void markChunkStart()
InstructionList
as the start of an outlineable chunk of code.
The outlineable chunk begins after the InstructionHandle
that is
at the end of the method's InstructionList
, or at the start of
the method if the InstructionList
is empty.
See OutlineableChunkStart
for more information.public void markChunkEnd()
OutlineableChunkStart
for more information.protected org.apache.bcel.classfile.Method getThisMethod()
Copyright © 2020 JBoss by Red Hat. All rights reserved.