org.apache.xalan.xsltc.compiler
Class VariableBase

java.lang.Object
  extended by org.apache.xalan.xsltc.compiler.SyntaxTreeNode
      extended by org.apache.xalan.xsltc.compiler.TopLevelElement
          extended by org.apache.xalan.xsltc.compiler.VariableBase
All Implemented Interfaces:
Constants
Direct Known Subclasses:
Param, Variable

 class VariableBase
extends TopLevelElement


Field Summary
protected  java.util.Vector _dependencies
           
protected  java.lang.String _escapedName
           
protected  boolean _ignore
           
protected  boolean _isLocal
           
protected  Instruction _loadInstruction
           
protected  LocalVariableGen _local
           
protected  QName _name
           
protected  java.util.Vector _refs
           
protected  Expression _select
           
protected  Instruction _storeInstruction
           
protected  Type _type
           
protected  java.lang.String select
           
 
Fields inherited from class org.apache.xalan.xsltc.compiler.SyntaxTreeNode
_attributes, _parent, _qname, Dummy, IndentIncrement, UNKNOWN_STYLESHEET_NODE_ID
 
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, 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
 
Constructor Summary
VariableBase()
           
 
Method Summary
 void addReference(VariableRefBase vref)
          Add a reference to this variable.
 void disable()
          Disable this variable/parameter
 void display(int indent)
          Display variable in a full AST dump
 java.lang.String getEscapedName()
          Returns the escaped qname of the variable or parameter
 Expression getExpression()
          Returns the expression from this variable's select attribute (if any)
 QName getName()
          Returns the name of the variable or parameter as it will occur in the compiled translet.
 Type getType()
          Returns the type of the variable
 boolean isLocal()
          Returns the true if the variable is local
 Instruction loadInstruction()
          Returns an instruction for loading the value of this variable onto the JVM stack.
 void mapRegister(MethodGenerator methodGen)
          Map this variable to a register
 void parseContents(Parser parser)
          Parse the contents of the element.
 void setName(QName name)
          Set the name of the variable or paremeter.
 Instruction storeInstruction()
          Returns an instruction for storing a value from the JVM stack into this variable.
 java.lang.String toString()
          Display variable as single string
 void translateValue(ClassGenerator classGen, MethodGenerator methodGen)
          Compile the value of the variable, which is either in an expression in a 'select' attribute, or in the variable elements body
 void unmapRegister(MethodGenerator methodGen)
          Remove the mapping of this variable to a register.
 
Methods inherited from class org.apache.xalan.xsltc.compiler.TopLevelElement
addDependency, compile, getDependencies, translate, typeCheck
 
Methods inherited from class org.apache.xalan.xsltc.compiler.SyntaxTreeNode
addAttribute, addElement, addPrefixMapping, compileResultTree, contextDependent, dependentContents, displayContents, elementAt, elementCount, elements, getAttribute, getAttribute, getAttributes, getContents, getImportPrecedence, getLineNumber, getNodeIDForStylesheetNSLookup, getParent, getParser, getPrefixMapping, getQName, getStylesheet, getSymbolTable, getTemplate, getXSLTC, hasAttribute, hasContents, indent, isDummy, lastChild, lookupNamespace, lookupPrefix, parseChildren, removeElement, reportError, reportWarning, setAttributes, setFirstElement, setLineNumber, setParent, setParser, setPrefixMapping, setQName, setQName, translateContents, typeCheckContents, updateScope
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_name

protected QName _name

_escapedName

protected java.lang.String _escapedName

_type

protected Type _type

_isLocal

protected boolean _isLocal

_local

protected LocalVariableGen _local

_loadInstruction

protected Instruction _loadInstruction

_storeInstruction

protected Instruction _storeInstruction

_select

protected Expression _select

select

protected java.lang.String select

_refs

protected java.util.Vector _refs

_dependencies

protected java.util.Vector _dependencies

_ignore

protected boolean _ignore
Constructor Detail

VariableBase

VariableBase()
Method Detail

disable

public void disable()
Disable this variable/parameter


addReference

public void addReference(VariableRefBase vref)
Add a reference to this variable. Called by VariableRef when an expression contains a reference to this variable.


mapRegister

public void mapRegister(MethodGenerator methodGen)
Map this variable to a register


unmapRegister

public void unmapRegister(MethodGenerator methodGen)
Remove the mapping of this variable to a register. Called when we leave the AST scope of the variable's declaration


loadInstruction

public Instruction loadInstruction()
Returns an instruction for loading the value of this variable onto the JVM stack.


storeInstruction

public Instruction storeInstruction()
Returns an instruction for storing a value from the JVM stack into this variable.


getExpression

public Expression getExpression()
Returns the expression from this variable's select attribute (if any)


toString

public java.lang.String toString()
Display variable as single string

Overrides:
toString in class java.lang.Object

display

public void display(int indent)
Display variable in a full AST dump

Overrides:
display in class TopLevelElement
Parameters:
indent - Indentation level for syntax tree levels.

getType

public Type getType()
Returns the type of the variable


getName

public QName getName()
Returns the name of the variable or parameter as it will occur in the compiled translet.


getEscapedName

public java.lang.String getEscapedName()
Returns the escaped qname of the variable or parameter


setName

public void setName(QName name)
Set the name of the variable or paremeter. Escape all special chars.


isLocal

public boolean isLocal()
Returns the true if the variable is local


parseContents

public void parseContents(Parser parser)
Parse the contents of the element.

Overrides:
parseContents in class SyntaxTreeNode
Parameters:
parser - reference to the XSLT parser

translateValue

public void translateValue(ClassGenerator classGen,
                           MethodGenerator methodGen)
Compile the value of the variable, which is either in an expression in a 'select' attribute, or in the variable elements body