Class Executable

java.lang.Object
net.sf.saxon.instruct.Executable
All Implemented Interfaces:
Serializable

public class Executable extends Object implements Serializable
A compiled stylesheet or a query in executable form. Note that the original stylesheet tree is not retained.
See Also:
  • Constructor Details

    • Executable

      public Executable()
  • Method Details

    • setConfiguration

      public void setConfiguration(Configuration config)
      Set the configuration
    • getConfiguration

      public Configuration getConfiguration()
      Get the configuration
    • setHostLanguage

      public void setHostLanguage(int language)
      Set the host language
    • getHostLanguage

      public int getHostLanguage()
      Get the host language
      Returns:
      a value identifying the host language: Configuration.XQUERY or Configuration.XSLT or Configuration.JAVA_APPLICATION
    • setRuleManager

      public void setRuleManager(RuleManager rm)
      Set the RuleManager that handles template rules
      Parameters:
      rm - the RuleManager containing details of all the template rules
    • getRuleManager

      public RuleManager getRuleManager()
      Get the RuleManager which handles template rules
      Returns:
      the RuleManager registered with setRuleManager
    • getNamedTemplateTable

      public IntHashMap getNamedTemplateTable()
      Get the named template table. Provided for use by tools allowing selection of a transformation entry point from a supplied list.
      Returns:
      a hash table containing entries that map the names of named templates (in the form of namePool fingerprints) to the Template objects representing the compiled xsl:template element in the stylesheet.
    • getNamedTemplate

      public Template getNamedTemplate(int fingerprint)
      Get the named template with a given name.
      Parameters:
      fingerprint - The namepool fingerprint of the template name
      Returns:
      The template (of highest import precedence) with this name if there is one; null if none is found.
    • putNamedTemplate

      public void putNamedTemplate(int fingerprint, Template template)
      Register the named template with a given name
    • getFunctionLibrary

      public FunctionLibrary getFunctionLibrary()
      Get the library containing all the in-scope functions in the static context
      Returns:
      the function libary
    • setFunctionLibrary

      public void setFunctionLibrary(FunctionLibrary functionLibrary)
      Set the library containing all the in-scope functions in the static context
      Parameters:
      functionLibrary - the function libary
    • setCharacterMapIndex

      public void setCharacterMapIndex(IntHashMap cmi)
      Set the index of named character maps
      Parameters:
      cmi - a hash table that maps the names of character maps to the HashMap objects representing the character maps
    • getCharacterMapIndex

      public IntHashMap getCharacterMapIndex()
      Get the index of named character maps
      Returns:
      the hash table that maps the names of character maps to the HashMap objects representing the character maps
    • setStripperRules

      public void setStripperRules(Mode rules)
      Set the rules determining which nodes are to be stripped from the tree
      Parameters:
      rules - a Mode object containing the whitespace stripping rules. A Mode is generally a collection of template rules, but it is reused here to represent a collection of stripping rules.
    • getStripperRules

      public Mode getStripperRules()
      Get the rules determining which nodes are to be stripped from the tree
      Returns:
      a Mode object containing the whitespace stripping rules. A Mode is generally a collection of template rules, but it is reused here to represent a collection of stripping rules.
    • setStripsWhitespace

      public void setStripsWhitespace(boolean strips)
      Indicate that the stylesheet does some whitespace stripping
      Parameters:
      strips - true if the stylesheet performs whitespace stripping of one or more elements.
    • newStripper

      public Stripper newStripper()
      Create a Stripper which handles whitespace stripping definitions
      Returns:
      the constructed Stripper object
    • stripsWhitespace

      public boolean stripsWhitespace()
      Determine whether this stylesheet does any whitespace stripping
      Returns:
      true if the stylesheet performs whitespace stripping of one or more elements.
    • setStripsInputTypeAnnotations

      public void setStripsInputTypeAnnotations(boolean strips)
      Set whether source documents are to have their type annotations stripped
    • stripsInputTypeAnnotations

      public boolean stripsInputTypeAnnotations()
      Determine whether source documents are to have their type annotations stripped
    • setKeyManager

      public void setKeyManager(KeyManager km)
      Set the KeyManager which handles key definitions
      Parameters:
      km - the KeyManager containing the xsl:key definitions
    • getKeyManager

      public KeyManager getKeyManager()
      Get the KeyManager which handles key definitions
      Returns:
      the KeyManager containing the xsl:key definitions
    • setDefaultOutputProperties

      public void setDefaultOutputProperties(Properties properties)
      Set the default output properties (the properties for the unnamed output format)
      Parameters:
      properties - the output properties to be used when the unnamed output format is selected
    • getDefaultOutputProperties

      public Properties getDefaultOutputProperties()
      Get the default output properties
      Returns:
      the properties for the unnamed output format
    • setOutputProperties

      public void setOutputProperties(int fingerprint, Properties properties)
      An a named output format
      Parameters:
      fingerprint - the name of the output format
      properties - the properties of the output format
    • getOutputProperties

      public Properties getOutputProperties(int fingerprint)
      Get a named output format
      Parameters:
      fingerprint - the name of the output format
      Returns:
      properties the properties of the output format. Return null if there are no output properties with the given name
    • setDecimalFormatManager

      public void setDecimalFormatManager(DecimalFormatManager dfm)
      Set the DecimalFormatManager which handles decimal-format definitions
      Parameters:
      dfm - the DecimalFormatManager containing the named xsl:decimal-format definitions
    • getDecimalFormatManager

      public DecimalFormatManager getDecimalFormatManager()
      Get the DecimalFormatManager which handles decimal-format definitions
      Returns:
      the DecimalFormatManager containing the named xsl:decimal-format definitions
    • setDefaultCollationName

      public void setDefaultCollationName(String name)
      Set the default collation
      Parameters:
      name - the name of the default collation
    • getDefaultCollationName

      public String getDefaultCollationName()
      Get the name of the default collation
      Returns:
      the name of the default collation; this is the code point collation URI if no other default has been set up.
    • getDefaultCollation

      public Comparator getDefaultCollation()
      Get the default collation
      Returns:
      a Comparator that implements the default collation
    • setCollationTable

      public void setCollationTable(CollationMap table)
      Set the table of collations
      Parameters:
      table - a hash table that maps collation names (URIs) to objects representing the collation information
    • getCollationTable

      public CollationMap getCollationTable()
      Get the table of collations
      Returns:
      a hash table that maps collation names (URIs) to objects representing the collation information
    • getNamedCollation

      public Comparator getNamedCollation(String name)
      Find a named collation.
      Parameters:
      name - identifies the name of the collation required; null indicates that the default collation is required
      Returns:
      the requested collation, or null if the collation is not found
    • addQueryLibraryModule

      public void addQueryLibraryModule(StaticQueryContext module)
      Add an XQuery library module to the configuration. The Executable maintains a table indicating for each module namespace, the set of modules that have been loaded from that namespace. If a module import is encountered that specifies no location hint, all the known modules for that namespace are imported.
    • getQueryLibraryModules

      public List getQueryLibraryModules(String namespace)
      Locate the known XQuery library modules for a given module namespace.
      Parameters:
      namespace - the module namespace URI
      Returns:
      a list of items each of which is the StaticQueryContext representing a module, or null if the module namespace is unknown
    • fixupQueryModules

      public void fixupQueryModules(StaticQueryContext main) throws XPathException
      Fix up global variables and functions in all query modules. This is done right at the end, because recursive imports are permitted
      Throws:
      XPathException
    • setPatternSlotSpace

      public void setPatternSlotSpace(int patternLocals)
      Set the space requirements for variables used in template match patterns
      Parameters:
      patternLocals - The largest number of local variables used in the match pattern of any template rule
    • getGlobalVariableMap

      public SlotManager getGlobalVariableMap()
      Get the global variable map
      Returns:
      the SlotManager defining the allocation of slots to global variables
    • getCompiledGlobalVariables

      public IntHashMap getCompiledGlobalVariables()
      Get the index of global variables
      Returns:
      the index of global variables. This is a HashMap in which the key is the integer fingerprint of the variable name, and the value is the GlobalVariable object representing the compiled global variable
    • registerGlobalVariable

      public void registerGlobalVariable(GlobalVariable variable)
      Register a global variable
    • initialiseBindery

      public void initialiseBindery(Bindery bindery)
      Allocate space in bindery for all the variables needed
      Parameters:
      bindery - The bindery to be initialized
    • getLargestPatternStackFrame

      public int getLargestPatternStackFrame()
      Determine the size of the stack frame needed for evaluating match patterns
    • setLocationMap

      public void setLocationMap(LocationMap map)
      Set the location map
    • getLocationMap

      public LocationMap getLocationMap()
      Get the location map
    • addRequiredParam

      public void addRequiredParam(int fingerprint)
      Add a required parameter
    • checkAllRequiredParamsArePresent

      public void checkAllRequiredParamsArePresent(GlobalParameterSet params) throws XPathException
      Check that all required parameters have been supplied
      Throws:
      XPathException
    • setReasonUnableToCompile

      public void setReasonUnableToCompile(String reason)
      If this Executable can't be compiled, set a message explaining why
    • getReasonUnableToCompile

      public String getReasonUnableToCompile()
      Determine whether this executable can be compiled; and if it can't, return the reason why
      Returns:
      null if the executable can be compiled, or a message otherwise