org.apache.xalan.xsltc.compiler

## Class Stylesheet

- java.lang.Object
- - org.apache.xalan.xsltc.compiler.SyntaxTreeNode
  - - 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

Fields
`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 class org.apache.xalan.xsltc.compiler.SyntaxTreeNode

`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`

### 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

Constructors
Constructor and Description
`Stylesheet()`

### Method Summary

Methods
`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` `declareExtensionPrefixes(Parser parser)`
`void` `display(int indent)` Displays the contents of this syntax tree node (to stdout).
`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)

#### declareExtensionPrefixes

    public void declareExtensionPrefixes(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()