org.apache.xalan.xsltc.compiler
Class Template

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.Template
All Implemented Interfaces:
Constants

public final class Template
extends TopLevelElement


Field Summary
private  boolean _compiled
           
private  boolean _disabled
           
private  boolean _isSimpleNamedTemplate
           
private  QName _mode
           
private  QName _name
           
private  java.util.Vector _parameters
           
private  Pattern _pattern
           
private  int _position
           
private  double _priority
           
private  boolean _simplified
           
private  Stylesheet _stylesheet
           
 
Fields inherited from class org.apache.xalan.xsltc.compiler.TopLevelElement
_dependencies
 
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
Template()
           
 
Method Summary
 void addParameter(Param param)
           
 int compareTo(java.lang.Object template)
          Compare this template to another.
 void disable()
           
 boolean disabled()
           
 void display(int indent)
          Displays the contents of this syntax tree node (to stdout).
 QName getModeName()
           
 QName getName()
           
 java.util.Vector getParameters()
           
 Pattern getPattern()
           
 int getPosition()
           
 double getPriority()
           
 Stylesheet getStylesheet()
          Get the Stylesheet node that represents the element that this node occured under.
 boolean hasParams()
           
 boolean isNamed()
           
 boolean isSimpleNamedTemplate()
           
 boolean isSimplified()
           
 void parseContents(Parser parser)
          Parse the contents of this syntax tree nodes (child nodes, XPath expressions, patterns and functions).
 void parseSimplified(Stylesheet stylesheet, Parser parser)
          When the parser realises that it is dealign with a simplified stylesheet it will create an empty Stylesheet object with the root element of the stylesheet (a LiteralElement object) as its only child.
private  boolean resolveNamedTemplates(Template other, Parser parser)
           
 void setName(QName qname)
           
 void setSimplified()
           
 void translate(ClassGenerator classGen, MethodGenerator methodGen)
          Translate this node into JVM bytecodes.
 Type typeCheck(SymbolTable stable)
          Type check all the children of this node.
 
Methods inherited from class org.apache.xalan.xsltc.compiler.TopLevelElement
addDependency, compile, getDependencies
 
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, 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, toString, wait, wait, wait
 

Field Detail

_name

private QName _name

_mode

private QName _mode

_pattern

private Pattern _pattern

_priority

private double _priority

_position

private int _position

_disabled

private boolean _disabled

_compiled

private boolean _compiled

_simplified

private boolean _simplified

_isSimpleNamedTemplate

private boolean _isSimpleNamedTemplate

_parameters

private java.util.Vector _parameters

_stylesheet

private Stylesheet _stylesheet
Constructor Detail

Template

public Template()
Method Detail

hasParams

public boolean hasParams()

isSimplified

public boolean isSimplified()

setSimplified

public void setSimplified()

isSimpleNamedTemplate

public boolean isSimpleNamedTemplate()

addParameter

public void addParameter(Param param)

getParameters

public java.util.Vector getParameters()

disable

public void disable()

disabled

public boolean disabled()

getPriority

public double getPriority()

getPosition

public int getPosition()

isNamed

public boolean isNamed()

getPattern

public Pattern getPattern()

getName

public QName getName()

setName

public void setName(QName qname)

getModeName

public QName getModeName()

compareTo

public int compareTo(java.lang.Object template)
Compare this template to another. First checks priority, then position.


display

public void display(int indent)
Description copied from class: SyntaxTreeNode
Displays the contents of this syntax tree node (to stdout). This method is intended for debugging _only_, and should be overridden by all syntax tree node implementations.

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

resolveNamedTemplates

private boolean resolveNamedTemplates(Template other,
                                      Parser parser)

getStylesheet

public Stylesheet getStylesheet()
Description copied from class: SyntaxTreeNode
Get the Stylesheet node that represents the element that this node occured under.

Overrides:
getStylesheet in class SyntaxTreeNode
Returns:
The Stylesheet ancestor node of this node.

parseContents

public void parseContents(Parser parser)
Description copied from class: SyntaxTreeNode
Parse the contents of this syntax tree nodes (child nodes, XPath expressions, patterns and functions). The default behaviour is to parser the syntax tree node's children (since there are no common expressions, patterns, etc. that can be handled in this base class.

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

parseSimplified

public void parseSimplified(Stylesheet stylesheet,
                            Parser parser)
When the parser realises that it is dealign with a simplified stylesheet it will create an empty Stylesheet object with the root element of the stylesheet (a LiteralElement object) as its only child. The Stylesheet object will then create this Template object and invoke this method to force some specific behaviour. What we need to do is: o) create a pattern matching on the root node o) add the LRE root node (the only child of the Stylesheet) as our only child node o) set the empty Stylesheet as our parent o) set this template as the Stylesheet's only child


typeCheck

public Type typeCheck(SymbolTable stable)
               throws TypeCheckError
Description copied from class: TopLevelElement
Type check all the children of this node.

Overrides:
typeCheck in class TopLevelElement
Parameters:
stable - The compiler/parser's symbol table
Throws:
TypeCheckError

translate

public void translate(ClassGenerator classGen,
                      MethodGenerator methodGen)
Description copied from class: TopLevelElement
Translate this node into JVM bytecodes.

Overrides:
translate in class TopLevelElement
Parameters:
classGen - BCEL Java class generator
methodGen - BCEL Java method generator