public class MethodGenerator extends MethodGen implements Constants
| Modifier and Type | Class and Description |
|---|---|
protected class |
MethodGenerator.LocalVariableRegistry
Keeps track of all local variables used in the method.
|
InstructionConstants.Clinit| Modifier and Type | Field and Description |
|---|---|
protected static int |
INVALID_INDEX |
cp, name, typeaccess_flagsABSOLUTE_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, 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, 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, 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, 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_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_URIAALOAD, 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,
Type return_type,
Type[] arg_types,
String[] arg_names,
String method_name,
String class_name,
InstructionList il,
ConstantPoolGen cpg) |
| Modifier and Type | Method and Description |
|---|---|
void |
addInstructionList(Pattern pattern,
InstructionList ilist)
Add a pre-compiled pattern to this mode.
|
LocalVariableGen |
addLocalVariable(String name,
Type type,
InstructionHandle start,
InstructionHandle end)
Allocates a local variable.
|
LocalVariableGen |
addLocalVariable2(String name,
Type type,
InstructionHandle start) |
Instruction |
attribute() |
Instruction |
endDocument() |
Instruction |
endElement() |
InstructionList |
getInstructionList(Pattern pattern)
Get the instruction list for a pre-compiled pattern.
|
int |
getLocalIndex(String name) |
LocalVariableGen |
getLocalVariable(String name) |
protected Method |
getThisMethod() |
Instruction |
loadContextNode()
by default context node is the same as current node.
|
Instruction |
loadCurrentNode() |
Instruction |
loadDOM() |
Instruction |
loadHandler() |
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. |
Instruction |
namespace() |
Instruction |
nextNode() |
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(LocalVariableGen lvg)
Remove a local variable, its slot will not be reused, if you do not use addLocalVariable
with an explicit index argument.
|
Instruction |
reset() |
void |
setMaxLocals()
Compute maximum number of local variables.
|
Instruction |
setStartNode() |
Instruction |
startDocument() |
Instruction |
startElement() |
Instruction |
storeContextNode() |
Instruction |
storeCurrentNode() |
Instruction |
storeDOM() |
Instruction |
storeHandler() |
Instruction |
storeIterator() |
Instruction |
uniqueAttribute() |
addCodeAttribute, addException, addExceptionHandler, addLineNumber, addLocalVariable, addObserver, copy, getArgumentName, getArgumentNames, getArgumentType, getArgumentTypes, getClassName, getCodeAttributes, getExceptionHandlers, getExceptions, getInstructionList, getLineNumbers, getLineNumberTable, getLocalVariables, getLocalVariableTable, getMaxLocals, getMaxStack, getMaxStack, getMethod, getReturnType, getSignature, removeCodeAttribute, removeCodeAttributes, removeException, removeExceptionHandler, removeExceptionHandlers, removeExceptions, removeLineNumber, removeLineNumbers, removeLocalVariables, removeNOPs, removeObserver, setArgumentName, setArgumentNames, setArgumentType, setArgumentTypes, setClassName, setInstructionList, setMaxLocals, setMaxStack, setMaxStack, setReturnType, stripAttributes, toString, updateaddAttribute, clone, getAttributes, getConstantPool, getName, getType, removeAttribute, removeAttributes, setConstantPool, setName, setTypegetAccessFlags, getModifiers, isAbstract, isAbstract, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isStrictfp, isStrictfp, isSynchronized, isSynchronized, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags, setModifiersprotected static final int INVALID_INDEX
public MethodGenerator(int access_flags,
Type return_type,
Type[] arg_types,
String[] arg_names,
String method_name,
String class_name,
InstructionList il,
ConstantPoolGen cpg)
public LocalVariableGen addLocalVariable(String name, Type type, InstructionHandle start, InstructionHandle end)
addLocalVariable in class MethodGenname - variable nametype - variable typestart - from where the variable is valid, if this is null,
it is valid from the startend - until where the variable is valid, if this is null,
it is valid to the endLocalVariablepublic LocalVariableGen addLocalVariable2(String name, Type type, InstructionHandle start)
public void removeLocalVariable(LocalVariableGen lvg)
MethodGenremoveLocalVariable in class MethodGenpublic Instruction loadDOM()
public Instruction storeDOM()
public Instruction storeHandler()
public Instruction loadHandler()
public Instruction storeIterator()
public Instruction loadIterator()
public final Instruction setStartNode()
public final Instruction reset()
public final Instruction nextNode()
public final Instruction startElement()
public final Instruction endElement()
public final Instruction startDocument()
public final Instruction endDocument()
public final Instruction attribute()
public final Instruction uniqueAttribute()
public final Instruction namespace()
public Instruction loadCurrentNode()
public Instruction storeCurrentNode()
public Instruction loadContextNode()
public Instruction storeContextNode()
public int getLocalIndex(String name)
public LocalVariableGen getLocalVariable(String name)
public void setMaxLocals()
MethodGensetMaxLocals in class MethodGenpublic void addInstructionList(Pattern pattern, InstructionList ilist)
public InstructionList getInstructionList(Pattern pattern)
public 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 methodMethods 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 Method getThisMethod()
Copyright © 2018–2021 mhoffrogge. All rights reserved.