net.sf.saxon.instruct
Class Executable

java.lang.Object
  extended by 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.