Package net.sf.saxon.expr.instruct
Class Template
java.lang.Object
net.sf.saxon.expr.instruct.Procedure
net.sf.saxon.expr.instruct.Template
- All Implemented Interfaces:
Serializable
,SourceLocator
,LocationProvider
,SaxonLocator
,Container
,InstructionInfo
,RuleTarget
,Locator
The runtime object corresponding to an xsl:template element in the stylesheet.
Note that the Template object no longer has precedence information associated with it; this is now
only in the Rule object that references this Template. This allows two rules to share the same template,
with different precedences. This occurs when a stylesheet module is imported more than once, from different
places, with different import precedences.
- See Also:
-
Field Summary
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
apply
(XPathContextMajor context) Process the template, without returning any tail calls.applyLeavingTail
(XPathContextMajor context) Process this template, with the possibility of returning a tail call package if the template contains any tail calls that are to be performed by the caller.expand
(XPathContext context) Expand the template.void
explain
(ExpressionPresenter presenter) Output diagnostic explanation to an ExpressionPresenterint
Get the type of construct.getLocalParam
(int id) Get the local parameter with a given parameter idGet the match pattern used with this templateGet a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc.Get the required type to be returned by this templateGet the name of the template (if it is named)boolean
Ask whether this template has one or more required parametersboolean
Ask whether or not this template is declared as streamablevoid
setBody
(Expression body) Set the expression that forms the body of the templatevoid
setHasRequiredParams
(boolean has) Set whether this template has one or more required parametersvoid
setMatchPattern
(Pattern pattern) Set the match pattern used with this templatevoid
setRequiredType
(SequenceType type) Set the required type to be returned by this templatevoid
setStreamable
(boolean streamable) Say whether or not this template is declared as streamablevoid
setTemplateName
(StructuredQName templateName) Initialize the templateMethods inherited from class net.sf.saxon.expr.instruct.Procedure
getBody, getColumnNumber, getColumnNumber, getContainerGranularity, getExecutable, getHostLanguage, getLineNumber, getLineNumber, getLocationProvider, getProperties, getProperty, getPublicId, getStackFrameMap, getSystemId, getSystemId, setExecutable, setHostLanguage, setLineNumber, setStackFrameMap, setSystemId
-
Constructor Details
-
Template
public Template()Create a template
-
-
Method Details
-
setTemplateName
Initialize the template- Parameters:
templateName
- the name of the template (if any) performed by apply-imports
-
setMatchPattern
Set the match pattern used with this template- Parameters:
pattern
- the match pattern (may be null for a named template)
-
getMatchPattern
Get the match pattern used with this template- Returns:
- the match pattern, or null if this is a named template with no match pattern
-
setBody
Set the expression that forms the body of the template -
getTemplateName
Get the name of the template (if it is named)- Returns:
- the template name, or null if unnamed
-
getObjectName
Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc. This is used only where the name is known statically.- Specified by:
getObjectName
in interfaceInstructionInfo
- Returns:
- the QName of the object declared or manipulated by this instruction or expression
-
setHasRequiredParams
public void setHasRequiredParams(boolean has) Set whether this template has one or more required parameters- Parameters:
has
- true if the template has at least one required parameter
-
hasRequiredParams
public boolean hasRequiredParams()Ask whether this template has one or more required parameters- Returns:
- true if this template has at least one required parameter
-
setRequiredType
Set the required type to be returned by this template- Parameters:
type
- the required type as defined in the "as" attribute on the xsl:template element
-
getRequiredType
Get the required type to be returned by this template- Returns:
- the required type as defined in the "as" attribute on the xsl:template element
-
setStreamable
public void setStreamable(boolean streamable) Say whether or not this template is declared as streamable- Parameters:
streamable
- true if the template belongs to a streamable mode
-
isStreamable
public boolean isStreamable()Ask whether or not this template is declared as streamable- Returns:
- true if the template belongs to a streamable mode
-
getLocalParam
Get the local parameter with a given parameter id- Parameters:
id
- the parameter id- Returns:
- the local parameter with this id if found, otherwise null
-
apply
Process the template, without returning any tail calls. This path is used by xsl:apply-imports and xsl:next-match- Parameters:
context
- The dynamic context, giving access to the current node,- Throws:
XPathException
- if a dynamic error occurs while evaluating the template
-
applyLeavingTail
Process this template, with the possibility of returning a tail call package if the template contains any tail calls that are to be performed by the caller.- Parameters:
context
- the XPath dynamic context- Returns:
- null if the template exited normally; but if it was a tail call, details of the call that hasn't been made yet and needs to be made by the caller
- Throws:
XPathException
- if a dynamic error occurs while evaluating the template
-
expand
Expand the template. Called when the template is invoked using xsl:call-template. Invoking a template by this method does not change the current template.- Parameters:
context
- the XPath dynamic context- Returns:
- null if the template exited normally; but if it was a tail call, details of the call that hasn't been made yet and needs to be made by the caller
- Throws:
XPathException
- if a dynamic error occurs while evaluating the template
-
getConstructType
public int getConstructType()Get the type of construct. This will either be the fingerprint of a standard XSLT instruction name (values inStandardNames
: all less than 1024) or it will be a constant in classLocation
.- Specified by:
getConstructType
in interfaceInstructionInfo
- Returns:
- an integer identifying the kind of construct
-
explain
Output diagnostic explanation to an ExpressionPresenter- Specified by:
explain
in interfaceRuleTarget
-