Package net.sf.saxon.style

## Interface StylesheetComponent

- All Known Implementing Classes:
    `XSLAccumulator`, `XSLAttributeSet`, `XSLFunction`, `XSLGlobalParam`, `XSLGlobalVariable`, `XSLKey`, `XSLTemplate`

      public interface StylesheetComponent

  This interface is implemented by all top-level XSL elements that can contain local variable declarations. Specifically, a top-level xsl:template, xsl:variable, xsl:param, or xsl:function element or an xsl:attribute-set, xsl:accumulator, or xsl:key element.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `checkCompatibility​(Component component)` | Check the compatibility of this component with another component that it is overriding
    `void` | `generateByteCode​(Optimizer opt)` | Generate byte code if appropriate
    `Actor` | `getActor()` | Get the corresponding Actor object that results from the compilation of this StylesheetComponent
    `SlotManager` | `getSlotManager()` | Get the SlotManager associated with this stylesheet construct.
    `SymbolicName` | `getSymbolicName()` | Get the symbolic name of the component, that is, the combination of the component kind and the qualified name
    `void` | `optimize​(ComponentDeclaration declaration)` | Optimize the stylesheet construct

- - ### Method Detail

    - #### getSlotManager

          SlotManager getSlotManager()

      Get the SlotManager associated with this stylesheet construct. The SlotManager contains the information needed to manage the local stack frames used by run-time instances of the code.
      Returns:
        the associated SlotManager object

    - #### optimize

          void optimize​(ComponentDeclaration declaration)
                 throws XPathException

      Optimize the stylesheet construct
      Parameters:
        `declaration` - the combination of the source XSLT element defining the component, and the module in which it appears
      Throws:
        `XPathException`

    - #### generateByteCode

          void generateByteCode​(Optimizer opt)
                         throws XPathException

      Generate byte code if appropriate
      Parameters:
        `opt` - the optimizer
      Throws:
        `XPathException` - if bytecode generation fails

    - #### getActor

          Actor getActor()
                  throws XPathException

      Get the corresponding Actor object that results from the compilation of this StylesheetComponent
      Returns:
        the compiled ComponentCode
      Throws:
        `XPathException` - if generating the ComponentBody fails
        `java.lang.UnsupportedOperationException` - for second-class components such as keys that support outwards references but not inwards references

    - #### getSymbolicName

          SymbolicName getSymbolicName()

      Get the symbolic name of the component, that is, the combination of the component kind and the qualified name
      Returns:
        the component's symbolic name

    - #### checkCompatibility

          void checkCompatibility​(Component component)
                           throws XPathException

      Check the compatibility of this component with another component that it is overriding
      Parameters:
        `component` - the overridden component
      Throws:
        `XPathException` - if the components are not compatible (differing signatures)