## net.sf.saxon.instruct
Class Procedure

    java.lang.Object
      net.sf.saxon.instruct.Procedure

All Implemented Interfaces:
  Container, LocationProvider, java.io.Serializable, javax.xml.transform.SourceLocator

Direct Known Subclasses:
  AttributeSet, KeyDefinition, Template, UserFunction

public class Procedure
extends java.lang.Object
implements java.io.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:
  Serialized Form

Constructor Summary
`Procedure()`

Method Summary
`Expression` `getBody()`
`int` `getColumnNumber()`
`Executable` `getExecutable()` Get the Executable (representing a complete stylesheet or query) of which this Container forms part
`int` `getLineNumber()`
`int` `getLineNumber(int locationId)`
`LocationProvider` `getLocationProvider()` Get the LocationProvider allowing location identifiers to be resolved.
`java.lang.String` `getPublicId()`
`SlotManager` `getStackFrameMap()`
`java.lang.String` `getSystemId()`
`java.lang.String` `getSystemId(int locationId)`
`void` `setBody(Expression body)`
`void` `setExecutable(Executable executable)`
`void` `setLineNumber(int lineNumber)`
`void` `setStackFrameMap(SlotManager map)`
`void` `setSystemId(java.lang.String systemId)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Procedure

    public Procedure()

Method Detail

### setBody

    public void setBody(Expression body)

### 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`

### 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(java.lang.String systemId)

### getLineNumber

    public int getLineNumber()

  Specified by:
    `getLineNumber` in interface `javax.xml.transform.SourceLocator`

### getSystemId

    public java.lang.String getSystemId()

  Specified by:
    `getSystemId` in interface `javax.xml.transform.SourceLocator`

### getColumnNumber

    public int getColumnNumber()

  Specified by:
    `getColumnNumber` in interface `javax.xml.transform.SourceLocator`

### getPublicId

    public java.lang.String getPublicId()

  Specified by:
    `getPublicId` in interface `javax.xml.transform.SourceLocator`

### getSystemId

    public java.lang.String getSystemId(int locationId)

  Specified by:
    `getSystemId` in interface `LocationProvider`

### getLineNumber

    public int getLineNumber(int locationId)

  Specified by:
    `getLineNumber` in interface `LocationProvider`