## net.sf.saxon.instruct
Class Template

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

All Implemented Interfaces:
  Serializable, SourceLocator, LocationProvider, Container, InstructionInfoProvider

    public class Template

extends Procedure
implements InstructionInfoProvider

An xsl:template element in the style sheet.

See Also:
  Serialized Form

Constructor Summary
`Template()`

Method Summary
`void` `apply(XPathContext context, Rule rule)` Process the template, without returning any tail calls
`TailCall` `applyLeavingTail(XPathContext context, Rule rule)` Process this template, with the possibility of returning a tail call package if the template contains any tail calls that are to be performed by the caller.
`TailCall` `expand(XPathContext context)` Expand the template.
`int` `getFingerprint()` Get the namepool fingerprint of the name of the template (if it is named)
`InstructionInfo` `getInstructionInfo()` Get the InstructionInfo details about the construct.
`int` `getMinImportPrecedence()`
`int` `getPrecedence()`
`boolean` `hasBadParentPointer()` Diagnostic method
`boolean` `hasRequiredParams()`
`void` `init(int templateFingerprint, int precedence, int minImportPrecedence)`
`void` `setBody(Expression body)`
`void` `setHasRequiredParams(boolean has)`

Methods inherited from class net.sf.saxon.instruct.Procedure
`getBody, getColumnNumber, getExecutable, getHostLanguage, getLineNumber, getLineNumber, getLocationProvider, getPublicId, getStackFrameMap, getSystemId, getSystemId, replaceSubExpression, setExecutable, setHostLanguage, setLineNumber, setStackFrameMap, setSystemId`

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

Constructor Detail

### Template

    public Template()

Method Detail

### init

    public void init(int templateFingerprint,
                     int precedence,
                     int minImportPrecedence)

### setBody

    public void setBody(Expression body)

  Overrides:
    `setBody` in class `Procedure`

### getFingerprint

    public int getFingerprint()

  Get the namepool fingerprint of the name of the template (if it is named)

  Returns:
    the fingerprint of the template name, or -1 if unnamed

### getPrecedence

    public int getPrecedence()

### getMinImportPrecedence

    public int getMinImportPrecedence()

### setHasRequiredParams

    public void setHasRequiredParams(boolean has)

### hasRequiredParams

    public boolean hasRequiredParams()

### apply

    public void apply(XPathContext context,
                      Rule rule)
               throws XPathException

  Process the template, without returning any tail calls

  Parameters:
    `context` - The dynamic context, giving access to the current node,
    `rule` -
  Throws:
    `XPathException`

### applyLeavingTail

    public TailCall applyLeavingTail(XPathContext context,
                                     Rule rule)
                              throws XPathException

  Process this template, with the possibility of returning a tail call package if the template contains any tail calls that are to be performed by the caller.

  Throws:
    `XPathException`

### expand

    public TailCall expand(XPathContext context)
                    throws XPathException

  Expand the template. Called when the template is invoked using xsl:call-template. Invoking a template by this method does not change the current template.

  Throws:
    `XPathException`

### getInstructionInfo

    public InstructionInfo getInstructionInfo()

  Get the InstructionInfo details about the construct. This information isn't used for tracing, but it is available when inspecting the context stack.

  Specified by:
    `getInstructionInfo` in interface `InstructionInfoProvider`

### hasBadParentPointer

    public boolean hasBadParentPointer()

  Diagnostic method

  Returns:
    true if the template contains an expression with a bad parent pointer

Copyright (C) Michael H. Kay. All rights reserved.