## net.sf.saxon.instruct
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:
  Serialized Form

Constructor Summary
`Executable(Configuration config)`

Method Summary
`void` `addQueryLibraryModule(StaticQueryContext module)` Add an XQuery library module to the configuration.
`void` `addRequiredParam(int fingerprint)` Add a required parameter
`void` `checkAllRequiredParamsArePresent(GlobalParameterSet params)` Check that all required parameters have been supplied
`void` `fixupQueryModules(StaticQueryContext main)` Fix up global variables and functions in all query modules.
`IntHashMap` `getCharacterMapIndex()` Get the index of named character maps
`CollationMap` `getCollationTable()` Get the table of collations
`IntHashMap` `getCompiledGlobalVariables()` Get the index of global variables
`Configuration` `getConfiguration()` Get the configuration
`DecimalFormatManager` `getDecimalFormatManager()` Get the DecimalFormatManager which handles decimal-format definitions
`StringCollator` `getDefaultCollation()` Get the default collation
`String` `getDefaultCollationName()` Get the name of the default collation
`Properties` `getDefaultOutputProperties()` Get the default output properties
`FunctionLibrary` `getFunctionLibrary()` Get the library containing all the in-scope functions in the static context
`SlotManager` `getGlobalVariableMap()` Get the global variable map
`int` `getHostLanguage()` Get the host language
`KeyManager` `getKeyManager()` Get the KeyManager which handles key definitions
`int` `getLargestPatternStackFrame()` Determine the size of the stack frame needed for evaluating match patterns
`LocationMap` `getLocationMap()` Get the location map
`StringCollator` `getNamedCollation(String name)` Find a named collation.
`Template` `getNamedTemplate(int fingerprint)` Get the named template with a given name.
`IntHashMap` `getNamedTemplateTable()` Get the named template table.
`Properties` `getOutputProperties(int fingerprint)` Get a named output format
`Iterator` `getQueryLibraryModules()` Get an iterator over all the query library modules (does not include the main module)
`List` `getQueryLibraryModules(String namespace)` Locate the known XQuery library modules for a given module namespace.
`StaticQueryContext` `getQueryModuleWithSystemId(String systemId)` Get the query library module with a given systemID
`String` `getReasonUnableToCompile()` Determine whether this executable can be compiled; and if it can't, return the reason why
`RuleManager` `getRuleManager()` Get the RuleManager which handles template rules
`Mode` `getStripperRules()` Get the rules determining which nodes are to be stripped from the tree
`void` `initializeBindery(Bindery bindery)` Allocate space in bindery for all the variables needed
`Stripper` `newStripper()` Create a Stripper which handles whitespace stripping definitions
`void` `putNamedTemplate(int fingerprint, Template template)` Register the named template with a given name
`void` `registerGlobalVariable(GlobalVariable variable)` Register a global variable
`void` `setCharacterMapIndex(IntHashMap cmi)` Set the index of named character maps
`void` `setCollationTable(CollationMap table)` Set the table of collations
`void` `setConfiguration(Configuration config)` Set the configuration
`void` `setDecimalFormatManager(DecimalFormatManager dfm)` Set the DecimalFormatManager which handles decimal-format definitions
`void` `setDefaultCollationName(String name)` Set the default collation
`void` `setDefaultOutputProperties(Properties properties)` Set the default output properties (the properties for the unnamed output format)
`void` `setFunctionLibrary(FunctionLibrary functionLibrary)` Set the library containing all the in-scope functions in the static context
`void` `setHostLanguage(int language)` Set the host language
`void` `setKeyManager(KeyManager km)` Set the KeyManager which handles key definitions
`void` `setLocationMap(LocationMap map)` Set the location map
`void` `setOutputProperties(int fingerprint, Properties properties)` An a named output format
`void` `setPatternSlotSpace(int patternLocals)` Set the space requirements for variables used in template match patterns
`void` `setReasonUnableToCompile(String reason)` If this Executable can't be compiled, set a message explaining why
`void` `setRuleManager(RuleManager rm)` Set the RuleManager that handles template rules
`void` `setStripperRules(Mode rules)` Set the rules determining which nodes are to be stripped from the tree
`void` `setStripsInputTypeAnnotations(boolean strips)` Set whether source documents are to have their type annotations stripped
`void` `setStripsWhitespace(boolean strips)` Indicate that the stylesheet does some whitespace stripping
`boolean` `stripsInputTypeAnnotations()` Determine whether source documents are to have their type annotations stripped
`boolean` `stripsWhitespace()` Determine whether this stylesheet does any whitespace stripping

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Executable

    public Executable(Configuration config)

Method Detail

### 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 StringCollator getDefaultCollation()

  Get the default collation

  Returns:
    a StringCollator 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 StringCollator 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

### getQueryModuleWithSystemId

    public StaticQueryContext getQueryModuleWithSystemId(String systemId)

  Get the query library module with a given systemID

### getQueryLibraryModules

    public Iterator getQueryLibraryModules()

  Get an iterator over all the query library modules (does not include the main module)

  Returns:
    an iterator whose returned items are instances of `StaticQueryContext`

### 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. If there are no global variables, the method may return null.

### registerGlobalVariable

    public void registerGlobalVariable(GlobalVariable variable)

  Register a global variable

### initializeBindery

    public void initializeBindery(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

Copyright (C) Michael H. Kay. All rights reserved.