Class TemplateRuleEE

java.lang.Object
net.sf.saxon.expr.instruct.TemplateRule
com.saxonica.ee.trans.TemplateRuleEE
All Implemented Interfaces:
SourceLocator, ExpressionOwner, Locatable, Location, Traceable, TraceableComponent, RuleTarget, Locator

public class TemplateRuleEE extends TemplateRule
Saxon-EE version of the TemplateRule class, with added code for JIT compilation and streamability analysis
  • Constructor Details

    • TemplateRuleEE

      public TemplateRuleEE()
      Create a template rule
  • Method Details

    • setDeclaredStreamable

      public void setDeclaredStreamable(boolean streamable)
      Say whether or not this template is declared as streamable
      Overrides:
      setDeclaredStreamable in class TemplateRule
      Parameters:
      streamable - true if the template belongs to a streamable mode; set to false if it does not belong to a streamable mode, or if it is found that the template is not actually streamable, and fallback to non-streaming has been requested.
    • isDeclaredStreamable

      public boolean isDeclaredStreamable()
      Ask whether or not this template is declared as streamable
      Overrides:
      isDeclaredStreamable in class TemplateRule
      Returns:
      true if the template belongs to a streamable mode; false if it does not belong to a streamable mode, or if it is found that the template is not actually streamable, and fallback to non-streaming has been requested.
    • setInitializer

      public void setInitializer(TemplateRuleInitializer initializer)
    • getInitializer

      public TemplateRuleInitializer getInitializer()
    • prepareInitializer

      public void prepareInitializer(Compilation compilation, ComponentDeclaration decl)
      Prepare for JIT compilation.
      Overrides:
      prepareInitializer in class TemplateRule
      Parameters:
      compilation - the XSLT compilation
      decl - the component declaration of this template rule
    • initialize

      public void initialize() throws XPathException
      Ensure that any first-time initialization has been done. Used in Saxon-EE to do JIT compilation
      Overrides:
      initialize in class TemplateRule
      Throws:
      XPathException - if any error occurs
    • isActuallyStreamable

      public boolean isActuallyStreamable(List<String> reasons)
      Ask whether this template satisfies the rules for a guaranteed streamable template
      Parameters:
      reasons - the caller may supply a list which on return will contain explanations for why the template is not streamable, suitable for inclusion in error messages
      Returns:
      true if the template is within the (Saxon or W3C) definition of guaranteed streamable
    • makeInversion

      public void makeInversion() throws XPathException
      Generate the inversion of the expression comprising the body of a template rules. Supported in Saxon-EE only
      Throws:
      XPathException
    • getInversion

      public ComponentInversion getInversion() throws XPathException
      Throws:
      XPathException