org.apache.xalan.xsltc.compiler.util

Class MethodGenerator

Implemented Interfaces:
Constants, InstructionConstants
Known Direct Subclasses:
AttributeSetMethodGenerator, CompareGenerator, MatchGenerator, NamedMethodGenerator, RtMethodGenerator, TestGenerator

public class MethodGenerator
extends MethodGen
implements Constants

Authors:
Jacek Ambroziak
Santiago Pericas-Geertsen

Fields inherited from interface org.apache.xalan.xsltc.compiler.Constants

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, ATTRIBUTES_SIG, ATTRIBUTE_LIST_FIELD, ATTRIBUTE_LIST_IMPL_CLASS, ATTRIBUTE_LIST_IMPL_SIG, ATTR_SET_SIG, BASIS_LIBRARY_CLASS, BOOLEAN_CLASS, BOOLEAN_VALUE, BOOLEAN_VALUE_SIG, CACHED_NODE_LIST_ITERATOR_CLASS, CHARACTERS, CHARACTERSW, CHARACTERSW_SIG, CHARACTERS_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, HASIDCALL_INDEX, HASIDCALL_INDEX_SIG, HAS_ATTRIBUTE, HAS_ATTRIBUTE_SIG, INTEGER_CLASS, INTEGER_SIG, INTERNAL, INT_VALUE, INT_VALUE_SIG, 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, NAMESPACE_FEATURE, NAMESPACE_INDEX, NAMESPACE_INDEX_SIG, NAMES_INDEX, NAMES_INDEX_SIG, NEXT, NEXTID, NEXT_SIG, 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_NAMESPACE_ARRAY_FIELD, STATIC_NAMES_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

Constructor Summary

MethodGenerator(int access_flags, Type return_type, Type[] arg_types, String[] arg_names, String method_name, String class_name, InstructionList il, ConstantPoolGen cpg)

Method Summary

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)
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)
Instruction
reset()
void
setMaxLocals()
Instruction
setStartNode()
Instruction
startDocument()
Instruction
startElement()
Instruction
storeContextNode()
Instruction
storeCurrentNode()
Instruction
storeDOM()
Instruction
storeHandler()
Instruction
storeIterator()
Instruction
uniqueAttribute()

Constructor Details

MethodGenerator

public MethodGenerator(int access_flags,
                       Type return_type,
                       Type[] arg_types,
                       String[] arg_names,
                       String method_name,
                       String class_name,
                       InstructionList il,
                       ConstantPoolGen cpg)

Method Details

addInstructionList

public void addInstructionList(Pattern pattern,
                               InstructionList ilist)
Add a pre-compiled pattern to this mode.

addLocalVariable

public LocalVariableGen addLocalVariable(String name,
                                         Type type,
                                         InstructionHandle start,
                                         InstructionHandle end)
Allocates a local variable. If the slot allocator has already been initialized, then call addLocalVariable2() so that the new variable is known to the allocator. Failing to do this may cause the allocator to return a slot that is already in use.

addLocalVariable2

public LocalVariableGen addLocalVariable2(String name,
                                          Type type,
                                          InstructionHandle start)

attribute

public final Instruction attribute()

endDocument

public final Instruction endDocument()

endElement

public final Instruction endElement()

getInstructionList

public InstructionList getInstructionList(Pattern pattern)
Get the instruction list for a pre-compiled pattern. Used by test sequences to avoid compiling patterns more than once.

getLocalIndex

public int getLocalIndex(String name)

getLocalVariable

public LocalVariableGen getLocalVariable(String name)

loadContextNode

public Instruction loadContextNode()
by default context node is the same as current node. MK437

loadCurrentNode

public Instruction loadCurrentNode()

loadDOM

public Instruction loadDOM()

loadHandler

public Instruction loadHandler()

loadIterator

public Instruction loadIterator()

markChunkEnd

public void markChunkEnd()
Mark the end of an outlineable chunk of code. See OutlineableChunkStart for more information.

markChunkStart

public void markChunkStart()
Mark the end of the method's 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.

namespace

public final Instruction namespace()

nextNode

public final Instruction nextNode()

outlineChunks

public 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.
Parameters:
classGen - The ClassGen with which the generated methods will be associated
originalMethodSize - The number of bytes of bytecode represented by the InstructionList of this method
Returns:
an array of the outlined Methods and the original method itself

removeLocalVariable

public void removeLocalVariable(LocalVariableGen lvg)

reset

public final Instruction reset()

setMaxLocals

public void setMaxLocals()

setStartNode

public final Instruction setStartNode()

startDocument

public final Instruction startDocument()

startElement

public final Instruction startElement()

storeContextNode

public Instruction storeContextNode()

storeCurrentNode

public Instruction storeCurrentNode()

storeDOM

public Instruction storeDOM()

storeHandler

public Instruction storeHandler()

storeIterator

public Instruction storeIterator()

uniqueAttribute

public final Instruction uniqueAttribute()

Copyright © 2006 Apache XML Project. All Rights Reserved.