net.sf.saxon.expr.instruct
Class Procedure

java.lang.Object
  extended by net.sf.saxon.expr.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:
Serialized Form

Field Summary
protected  Expression body
           
 
Constructor Summary
Procedure()
           
 
Method Summary
 Expression getBody()
           
 int getColumnNumber()
           
 int getColumnNumber(long locationId)
          Get the column number within the document, entity, or module containing a particular location
 int getContainerGranularity()
          Get the granularity of the container.
 Executable getExecutable()
          Get the Executable (representing a complete stylesheet or query) of which this Container forms part
 int getHostLanguage()
          Get the host language (XSLT, XQuery, XPath) used to implement the code in this container
 int getLineNumber()
          Get the line number of the instruction in the source stylesheet module.
 int getLineNumber(long locationId)
          Get the line number within the document, entity or module containing a particular location
 LocationProvider getLocationProvider()
          Get the LocationProvider allowing location identifiers to be resolved.
 Iterator<String> getProperties()
          Get an iterator over all the properties available.
 Object getProperty(String name)
          Get the value of a particular property of the instruction.
 String getPublicId()
           
 SlotManager getStackFrameMap()
           
 String getSystemId()
          Get the system identifier (URI) of the source stylesheet or query module containing the instruction.
 String getSystemId(long locationId)
          Get the URI of the document, entity, or module containing a particular location
 void setBody(Expression body)
           
 void setExecutable(Executable executable)
           
 void setHostLanguage(int language)
           
 void setLineNumber(int lineNumber)
           
 void setStackFrameMap(SlotManager map)
           
 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 Detail

body

protected Expression body
Constructor Detail

Procedure

public Procedure()
Method Detail

getContainerGranularity

public int getContainerGranularity()
Get the granularity of the container.

Specified by:
getContainerGranularity in interface Container
Returns:
0 for a temporary container created during parsing; 1 for a container that operates at the level of an XPath expression; 2 for a container at the level of a global function or template

setBody

public void setBody(Expression body)

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 interface Container
Returns:
typically Configuration.XSLT or Configuration.XQUERY

getBody

public final Expression getBody()

setStackFrameMap

public void setStackFrameMap(SlotManager map)

getStackFrameMap

public SlotManager getStackFrameMap()

getExecutable

public final Executable 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 interface Container
Returns:
the executable

setExecutable

public void setExecutable(Executable executable)

getLocationProvider

public LocationProvider getLocationProvider()
Get the LocationProvider allowing location identifiers to be resolved.

Specified by:
getLocationProvider in interface Container
Returns:
the location provider

setLineNumber

public void setLineNumber(int lineNumber)

setSystemId

public void setSystemId(String systemId)

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 interface SourceLocator
Specified by:
getLineNumber in interface InstructionInfo
Specified by:
getLineNumber in interface Locator
Returns:
the line number of the expression within the containing module

getSystemId

public String 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 interface SourceLocator
Specified by:
getSystemId in interface InstructionInfo
Specified by:
getSystemId in interface Locator
Returns:
the URI of the containing module

getColumnNumber

public int getColumnNumber()
Specified by:
getColumnNumber in interface SourceLocator
Specified by:
getColumnNumber in interface Locator

getPublicId

public String getPublicId()
Specified by:
getPublicId in interface SourceLocator
Specified by:
getPublicId in interface Locator

getSystemId

public String getSystemId(long locationId)
Description copied from interface: LocationProvider
Get the URI of the document, entity, or module containing a particular location

Specified by:
getSystemId in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the URI of the document, XML entity or module. For a SourceLocationProvider this will be the URI of the document or entity (the URI that would be the base URI if there were no xml:base attributes). In other cases it may identify the query or stylesheet module currently being executed.

getLineNumber

public int getLineNumber(long locationId)
Description copied from interface: LocationProvider
Get the line number within the document, entity or module containing a particular location

Specified by:
getLineNumber in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the line number within the document, entity or module, or -1 if no information is available.

getColumnNumber

public int getColumnNumber(long locationId)
Description copied from interface: LocationProvider
Get the column number within the document, entity, or module containing a particular location

Specified by:
getColumnNumber in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the column number within the document, entity, or module, or -1 if this is not available

getProperty

public Object getProperty(String name)
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 interface InstructionInfo
Parameters:
name - The name of the required property
Returns:
The value of the requested property, or null if the property is not available

getProperties

public Iterator<String> 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 interface InstructionInfo
Returns:
an iterator over the properties.


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.