Class Procedure

java.lang.Object
net.sf.saxon.instruct.Procedure
All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, Container
Direct Known Subclasses:
AttributeSet, KeyDefinition, Template, UserFunction

public abstract class Procedure extends Object implements Serializable, Container, 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 Details

  • Constructor Details

    • Procedure

      public Procedure()
  • Method Details

    • 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()
    • replaceSubExpression

      public boolean replaceSubExpression(Expression original, Expression replacement)
      Replace one subexpression by a replacement subexpression
      Specified by:
      replaceSubExpression in interface Container
      Parameters:
      original - the original subexpression
      replacement - the replacement subexpression
      Returns:
      true if the original subexpression is found
    • 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
    • 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
    • setLineNumber

      public void setLineNumber(int lineNumber)
    • setSystemId

      public void setSystemId(String systemId)
    • getLineNumber

      public int getLineNumber()
      Specified by:
      getLineNumber in interface SourceLocator
    • getSystemId

      public String getSystemId()
      Specified by:
      getSystemId in interface SourceLocator
    • getColumnNumber

      public int getColumnNumber()
      Specified by:
      getColumnNumber in interface SourceLocator
    • getPublicId

      public String getPublicId()
      Specified by:
      getPublicId in interface SourceLocator
    • getSystemId

      public String getSystemId(int locationId)
      Description copied from interface: LocationProvider
      Get the URI of the document 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 or module.
    • getLineNumber

      public int getLineNumber(int locationId)
      Description copied from interface: LocationProvider
      Get the line number within the document 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 or module.