Package net.sf.saxon.instruct
Class Procedure
java.lang.Object
net.sf.saxon.instruct.Procedure
- All Implemented Interfaces:
Serializable
,SourceLocator
,LocationProvider
,SaxonLocator
,Container
,InstructionInfo
,Locator
- Direct Known Subclasses:
AttributeSet
,KeyDefinition
,Template
,UserFunction
public abstract class Procedure
extends Object
implements Serializable, Container, InstructionInfo, LocationProvider
This object represents the compiled form of a user-written function, template, attribute-set, etc
(the source can be either an XSLT stylesheet function or an XQuery function).
It is assumed that type-checking, of both the arguments and the results, has been handled at compile time. That is, the expression supplied as the body of the function must be wrapped in code to check or convert the result to the required type, and calls on the function must be wrapped at compile time to check or convert the supplied arguments.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal Expression
getBody()
int
int
getColumnNumber
(long locationId) Get the column number within the document or module containing a particular locationfinal Executable
Get the Executable (representing a complete stylesheet or query) of which this Container forms partint
Get the host language (XSLT, XQuery, XPath) used to implement the code in this containerint
Get the line number of the instruction in the source stylesheet module.int
getLineNumber
(long locationId) Get the line number within the document or module containing a particular locationGet the LocationProvider allowing location identifiers to be resolved.Get an iterator over all the properties available.getProperty
(String name) Get the value of a particular property of the instruction.Get the system identifier (URI) of the source stylesheet or query module containing the instruction.getSystemId
(long locationId) Get the URI of the document or module containing a particular locationboolean
replaceSubExpression
(Expression original, Expression replacement) Replace one subexpression by a replacement subexpressionvoid
setBody
(Expression body) void
setExecutable
(Executable executable) void
setHostLanguage
(int language) void
setLineNumber
(int lineNumber) void
void
setSystemId
(String systemId) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.sf.saxon.trace.InstructionInfo
getConstructType, getObjectName
-
Field Details
-
body
-
-
Constructor Details
-
Procedure
public Procedure()
-
-
Method Details
-
setBody
-
setHostLanguage
public void setHostLanguage(int language) -
getHostLanguage
public int getHostLanguage()Description copied from interface:Container
Get the host language (XSLT, XQuery, XPath) used to implement the code in this container- Specified by:
getHostLanguage
in interfaceContainer
- Returns:
- typically
Configuration.XSLT
orConfiguration.XQUERY
-
getBody
-
replaceSubExpression
Replace one subexpression by a replacement subexpression- Specified by:
replaceSubExpression
in interfaceContainer
- Parameters:
original
- the original subexpressionreplacement
- the replacement subexpression- Returns:
- true if the original subexpression is found
-
setStackFrameMap
-
getStackFrameMap
-
getExecutable
Description copied from interface:Container
Get the Executable (representing a complete stylesheet or query) of which this Container forms part- Specified by:
getExecutable
in interfaceContainer
- Returns:
- the executable
-
setExecutable
-
getLocationProvider
Get the LocationProvider allowing location identifiers to be resolved.- Specified by:
getLocationProvider
in interfaceContainer
- Returns:
- the location provider
-
setLineNumber
public void setLineNumber(int lineNumber) -
setSystemId
-
getLineNumber
public int getLineNumber()Description copied from interface:InstructionInfo
Get the line number of the instruction in the source stylesheet module. If this is not known, or if the instruction is an artificial one that does not relate to anything in the source code, the value returned may be -1.- Specified by:
getLineNumber
in interfaceInstructionInfo
- Specified by:
getLineNumber
in interfaceLocator
- Specified by:
getLineNumber
in interfaceSourceLocator
- Returns:
- the line number of the expression within the containing module
-
getSystemId
Description copied from interface:InstructionInfo
Get the system identifier (URI) of the source stylesheet or query module containing the instruction. This will generally be an absolute URI. If the system identifier is not known, the method may return null. In some cases, for example where XML external entities are used, the correct system identifier is not always retained.- Specified by:
getSystemId
in interfaceInstructionInfo
- Specified by:
getSystemId
in interfaceLocator
- Specified by:
getSystemId
in interfaceSourceLocator
- Returns:
- the URI of the containing module
-
getColumnNumber
public int getColumnNumber()- Specified by:
getColumnNumber
in interfaceLocator
- Specified by:
getColumnNumber
in interfaceSourceLocator
-
getPublicId
- Specified by:
getPublicId
in interfaceLocator
- Specified by:
getPublicId
in interfaceSourceLocator
-
getSystemId
Description copied from interface:LocationProvider
Get the URI of the document or module containing a particular location- Specified by:
getSystemId
in interfaceLocationProvider
- Parameters:
locationId
- identifier of the location in question (as passed down the Receiver pipeline)- Returns:
- the URI of the document or module.
-
getLineNumber
public int getLineNumber(long locationId) Description copied from interface:LocationProvider
Get the line number within the document or module containing a particular location- Specified by:
getLineNumber
in interfaceLocationProvider
- Parameters:
locationId
- identifier of the location in question (as passed down the Receiver pipeline)- Returns:
- the line number within the document or module.
-
getColumnNumber
public int getColumnNumber(long locationId) Description copied from interface:LocationProvider
Get the column number within the document or module containing a particular location- Specified by:
getColumnNumber
in interfaceLocationProvider
- Parameters:
locationId
- identifier of the location in question (as passed down the Receiver pipeline)- Returns:
- the column number within the document or module, or -1 if this is not available
-
getProperty
Description copied from interface:InstructionInfo
Get the value of a particular property of the instruction. Properties of XSLT instructions are generally known by the name of the stylesheet attribute that defines them.- Specified by:
getProperty
in interfaceInstructionInfo
- Parameters:
name
- The name of the required property- Returns:
- The value of the requested property, or null if the property is not available
-
getProperties
Get an iterator over all the properties available. The values returned by the iterator will be of type String, and each string can be supplied as input to the getProperty() method to retrieve the value of the property. The iterator may return properties whose value is null.- Specified by:
getProperties
in interfaceInstructionInfo
- Returns:
- an iterator over the properties.
-