Class Procedure

  • All Implemented Interfaces:
    java.io.Serializable, javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, Container, InstructionInfo, org.xml.sax.Locator
    Direct Known Subclasses:
    AttributeSet, KeyDefinition, Template, UserFunction

    public abstract class Procedure
    extends java.lang.Object
    implements java.io.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
    • Constructor Detail

      • Procedure

        public Procedure()
    • Method Detail

      • setBody

        public void setBody​(Expression body)
      • setHostLanguage

        public void setHostLanguage​(int language)
      • 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
        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​(java.lang.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 InstructionInfo
        Specified by:
        getLineNumber in interface org.xml.sax.Locator
        Specified by:
        getLineNumber in interface javax.xml.transform.SourceLocator
        Returns:
        the line number of the expression within the containing module
      • getSystemId

        public java.lang.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 InstructionInfo
        Specified by:
        getSystemId in interface org.xml.sax.Locator
        Specified by:
        getSystemId in interface javax.xml.transform.SourceLocator
        Returns:
        the URI of the containing module
      • getColumnNumber

        public int getColumnNumber()
        Specified by:
        getColumnNumber in interface org.xml.sax.Locator
        Specified by:
        getColumnNumber in interface javax.xml.transform.SourceLocator
      • getPublicId

        public java.lang.String getPublicId()
        Specified by:
        getPublicId in interface org.xml.sax.Locator
        Specified by:
        getPublicId in interface javax.xml.transform.SourceLocator
      • getSystemId

        public java.lang.String getSystemId​(long 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​(long 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.
      • 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 interface LocationProvider
        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

        public java.lang.Object getProperty​(java.lang.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 java.util.Iterator 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.