org.apache.xalan.xsltc.compiler
Class Stylesheet

java.lang.Object
  extended by org.apache.xalan.xsltc.compiler.SyntaxTreeNode
      extended by org.apache.xalan.xsltc.compiler.Stylesheet
All Implemented Interfaces:
org.apache.bcel.generic.InstructionConstants, Constants

public final class Stylesheet
extends SyntaxTreeNode


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.bcel.generic.InstructionConstants
org.apache.bcel.generic.InstructionConstants.Clinit
 
Field Summary
 Stylesheet _importedFrom
          Reference to the stylesheet from which this stylesheet was imported (if any).
 Stylesheet _includedFrom
          Reference to the stylesheet from which this stylesheet was included (if any).
static int HTML_OUTPUT
           
static int TEXT_OUTPUT
           
static int UNKNOWN_OUTPUT
           
static int XML_OUTPUT
           
 
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, CALL_FUNCTION_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_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_URI
 
Fields inherited from interface org.apache.bcel.generic.InstructionConstants
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 Summary
Stylesheet()
           
 
Method Summary
 void addIncludedStylesheet(Stylesheet child)
           
 int addParam(org.apache.xalan.xsltc.compiler.Param param)
           
 int addVariable(org.apache.xalan.xsltc.compiler.Variable global)
           
 boolean callsNodeset()
           
 boolean checkForLoop(java.lang.String systemId)
           
 void display(int indent)
          Displays the contents of this syntax tree node (to stdout).
 void excludeExtensionPrefixes(Parser parser)
           
 java.util.Vector getAllValidTemplates()
           
 java.lang.String getClassName()
           
 int getImportPrecedence()
          Get the import precedence of this element.
 org.apache.xalan.xsltc.compiler.Output getLastOutputElement()
           
 int getMinimumDescendantPrecedence()
          Get the minimum of the precedence of this stylesheet, any stylesheet imported by this stylesheet and any include/import descendant of this stylesheet.
 org.apache.xalan.xsltc.compiler.Mode getMode(org.apache.xalan.xsltc.compiler.QName modeName)
           
 java.lang.String getNamespace(java.lang.String prefix)
           
 int getOutputMethod()
          Return the output method
 java.util.Properties getOutputProperties()
           
 Stylesheet getParentStylesheet()
           
 SourceLoader getSourceLoader()
           
 java.lang.String getSystemId()
           
 boolean getTemplateInlining()
           
 java.util.Vector getTemplates()
           
 boolean hasGlobals()
          Returns true if this stylesheet has global vars or params.
 boolean hasLocalParams()
          Returns true if at least one template in the stylesheet has params defined.
 boolean isExtension(java.lang.String uri)
           
 boolean isMultiDocument()
           
 boolean isSimplified()
           
 void numberFormattingUsed()
           
 void parseContents(Parser parser)
          Parse the version and uri fields of the stylesheet and add an entry to the symbol table mapping the name __stylesheet_ to an instance of this class.
 void parseOwnChildren(Parser parser)
          Parse all direct children of the element.
 void processModes()
           
 void setCallsNodeset(boolean flag)
           
 void setHasIdCall(boolean flag)
           
 void setImportingStylesheet(Stylesheet parent)
           
 void setImportPrecedence(int precedence)
           
 void setIncludingStylesheet(Stylesheet parent)
           
 void setMultiDocument(boolean flag)
           
 void setOutputProperties(java.util.Properties props)
           
 void setOutputProperty(java.lang.String key, java.lang.String value)
           
 void setParentStylesheet(Stylesheet parent)
           
 void setParser(Parser parser)
          Set this node's parser.
 void setSimplified()
           
 void setSourceLoader(SourceLoader loader)
           
 void setSystemId(java.lang.String systemId)
           
 void setTemplateInlining(boolean flag)
           
 void translate()
          Translate the stylesheet into JVM bytecodes.
 void translate(ClassGenerator classGen, MethodGenerator methodGen)
          Translate the stylesheet into JVM bytecodes.
 Type typeCheck(org.apache.xalan.xsltc.compiler.SymbolTable stable)
          Type check all the children of this node.
 
Methods inherited from class org.apache.xalan.xsltc.compiler.SyntaxTreeNode
getLineNumber, getParser, getStylesheet
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_importedFrom

public Stylesheet _importedFrom
Reference to the stylesheet from which this stylesheet was imported (if any).


_includedFrom

public Stylesheet _includedFrom
Reference to the stylesheet from which this stylesheet was included (if any).


UNKNOWN_OUTPUT

public static final int UNKNOWN_OUTPUT
See Also:
Constant Field Values

XML_OUTPUT

public static final int XML_OUTPUT
See Also:
Constant Field Values

HTML_OUTPUT

public static final int HTML_OUTPUT
See Also:
Constant Field Values

TEXT_OUTPUT

public static final int TEXT_OUTPUT
See Also:
Constant Field Values
Constructor Detail

Stylesheet

public Stylesheet()
Method Detail

getOutputMethod

public int getOutputMethod()
Return the output method


getTemplateInlining

public boolean getTemplateInlining()

setTemplateInlining

public void setTemplateInlining(boolean flag)

isSimplified

public boolean isSimplified()

setSimplified

public void setSimplified()

setHasIdCall

public void setHasIdCall(boolean flag)

setOutputProperty

public void setOutputProperty(java.lang.String key,
                              java.lang.String value)

setOutputProperties

public void setOutputProperties(java.util.Properties props)

getOutputProperties

public java.util.Properties getOutputProperties()

getLastOutputElement

public org.apache.xalan.xsltc.compiler.Output getLastOutputElement()

setMultiDocument

public void setMultiDocument(boolean flag)

isMultiDocument

public boolean isMultiDocument()

setCallsNodeset

public void setCallsNodeset(boolean flag)

callsNodeset

public boolean callsNodeset()

numberFormattingUsed

public void numberFormattingUsed()

setImportPrecedence

public void setImportPrecedence(int precedence)

getImportPrecedence

public int getImportPrecedence()
Description copied from class: SyntaxTreeNode
Get the import precedence of this element. The import precedence equals the import precedence of the stylesheet in which this element occured.

Returns:
The import precedence of this syntax tree node.

getMinimumDescendantPrecedence

public int getMinimumDescendantPrecedence()
Get the minimum of the precedence of this stylesheet, any stylesheet imported by this stylesheet and any include/import descendant of this stylesheet.


checkForLoop

public boolean checkForLoop(java.lang.String systemId)

setParser

public void setParser(Parser parser)
Description copied from class: SyntaxTreeNode
Set this node's parser. The parser (the XSLT parser) gives this syntax tree node access to the symbol table and XPath parser.

Parameters:
parser - The XSLT parser.

setParentStylesheet

public void setParentStylesheet(Stylesheet parent)

getParentStylesheet

public Stylesheet getParentStylesheet()

setImportingStylesheet

public void setImportingStylesheet(Stylesheet parent)

setIncludingStylesheet

public void setIncludingStylesheet(Stylesheet parent)

addIncludedStylesheet

public void addIncludedStylesheet(Stylesheet child)

setSystemId

public void setSystemId(java.lang.String systemId)

getSystemId

public java.lang.String getSystemId()

setSourceLoader

public void setSourceLoader(SourceLoader loader)

getSourceLoader

public SourceLoader getSourceLoader()

hasGlobals

public boolean hasGlobals()
Returns true if this stylesheet has global vars or params.


hasLocalParams

public boolean hasLocalParams()
Returns true if at least one template in the stylesheet has params defined. Uses the variable _hasLocalParams to cache the result.


isExtension

public boolean isExtension(java.lang.String uri)

excludeExtensionPrefixes

public void excludeExtensionPrefixes(Parser parser)

parseContents

public void parseContents(Parser parser)
Parse the version and uri fields of the stylesheet and add an entry to the symbol table mapping the name __stylesheet_ to an instance of this class.

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

parseOwnChildren

public final void parseOwnChildren(Parser parser)
Parse all direct children of the element.


processModes

public void processModes()

getMode

public org.apache.xalan.xsltc.compiler.Mode getMode(org.apache.xalan.xsltc.compiler.QName modeName)

typeCheck

public Type typeCheck(org.apache.xalan.xsltc.compiler.SymbolTable stable)
               throws TypeCheckError
Type check all the children of this node.

Specified by:
typeCheck in class SyntaxTreeNode
Parameters:
stable - The compiler/parser's symbol table
Throws:
TypeCheckError

translate

public void translate(ClassGenerator classGen,
                      MethodGenerator methodGen)
Translate the stylesheet into JVM bytecodes.

Specified by:
translate in class SyntaxTreeNode
Parameters:
classGen - BCEL Java class generator
methodGen - BCEL Java method generator

translate

public void translate()
Translate the stylesheet into JVM bytecodes.


addParam

public int addParam(org.apache.xalan.xsltc.compiler.Param param)

addVariable

public int addVariable(org.apache.xalan.xsltc.compiler.Variable global)

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 SyntaxTreeNode
Parameters:
indent - Indentation level for syntax tree levels.

getNamespace

public java.lang.String getNamespace(java.lang.String prefix)

getClassName

public java.lang.String getClassName()

getTemplates

public java.util.Vector getTemplates()

getAllValidTemplates

public java.util.Vector getAllValidTemplates()


Copyright ? 2005 Apache XML Project. All Rights Reserved.