Sophie

Sophie

distrib > Mageia > 7 > armv7hl > by-pkgid > b3bdfe6d859a3d6920ff2c44b38e9a6f > files > 1936

saxon-manual-9.4.0.9-2.mga7.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_18) on Fri Dec 09 20:48:12 GMT 2011 -->
<TITLE>
UserFunction
</TITLE>

<META NAME="date" CONTENT="2011-12-09">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="UserFunction";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../net/sf/saxon/expr/instruct/UseAttributeSets.html" title="class in net.sf.saxon.expr.instruct"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunctionParameter.html" title="class in net.sf.saxon.expr.instruct"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?net/sf/saxon/expr/instruct/UserFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="UserFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
net.sf.saxon.expr.instruct</FONT>
<BR>
Class UserFunction</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html" title="class in net.sf.saxon.expr.instruct">net.sf.saxon.expr.instruct.Procedure</A>
      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>net.sf.saxon.expr.instruct.UserFunction</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/javax/xml/transform/SourceLocator.html?is-external=true" title="class or interface in javax.xml.transform">SourceLocator</A>, <A HREF="../../../../../net/sf/saxon/event/LocationProvider.html" title="interface in net.sf.saxon.event">LocationProvider</A>, <A HREF="../../../../../net/sf/saxon/event/SaxonLocator.html" title="interface in net.sf.saxon.event">SaxonLocator</A>, <A HREF="../../../../../net/sf/saxon/expr/Container.html" title="interface in net.sf.saxon.expr">Container</A>, <A HREF="../../../../../net/sf/saxon/trace/InstructionInfo.html" title="interface in net.sf.saxon.trace">InstructionInfo</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/org/xml/sax/Locator.html?is-external=true" title="class or interface in org.xml.sax">Locator</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../com/saxonica/expr/MemoFunction.html" title="class in com.saxonica.expr">MemoFunction</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>UserFunction</B><DT>extends <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html" title="class in net.sf.saxon.expr.instruct">Procedure</A></DL>
</PRE>

<P>
This object represents the compiled form of a user-written function
 (the source can be either an XSLT stylesheet function or an XQuery function).

 <p>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.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#net.sf.saxon.expr.instruct.UserFunction">Serialized Form</A></DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#evaluationMode">evaluationMode</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_net.sf.saxon.expr.instruct.Procedure"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class net.sf.saxon.expr.instruct.<A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html" title="class in net.sf.saxon.expr.instruct">Procedure</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#body">body</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#UserFunction()">UserFunction</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a user-defined function (the body must be added later)</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#call(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.Controller)">call</A></B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
     <A HREF="../../../../../net/sf/saxon/Controller.html" title="class in net.sf.saxon">Controller</A>&nbsp;controller)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call this function.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#call(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor)">call</A></B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
     <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call this function to return a value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#callUpdating(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor, net.sf.saxon.expr.PendingUpdateList)">callUpdating</A></B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
             <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context,
             <A HREF="../../../../../net/sf/saxon/expr/PendingUpdateList.html" title="interface in net.sf.saxon.expr">PendingUpdateList</A>&nbsp;pul)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call an updating function.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#computeEvaluationMode()">computeEvaluationMode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine the preferred evaluation mode for this function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#containsTailCalls()">containsTailCalls</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine whether the function contains tail calls (on this or other functions)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#gatherDirectContributingCallees(java.util.Set)">gatherDirectContributingCallees</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html" title="class in net.sf.saxon.expr.instruct">UserFunction</A>&gt;&nbsp;result)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gather the direct contributing callees of this function.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getArgumentType(int)">getArgumentType</A></B>(int&nbsp;n)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the required types of an argument to this function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getConstructType()">getConstructType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the type of construct.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getDeclaredResultType()">getDeclaredResultType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the declared result type</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getEvaluationMode()">getEvaluationMode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the evaluation mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/om/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getFunctionName()">getFunctionName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the function name</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getNumberOfArguments()">getNumberOfArguments</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the arity of this function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/om/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getObjectName()">getObjectName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a name identifying the object of the expression, for example a function name, template name,
 variable name, key name, element name, etc.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunctionParameter.html" title="class in net.sf.saxon.expr.instruct">UserFunctionParameter</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getParameterDefinitions()">getParameterDefinitions</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the definitions of the declared parameters for this function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#getResultType(net.sf.saxon.type.TypeHierarchy)">getResultType</A></B>(<A HREF="../../../../../net/sf/saxon/type/TypeHierarchy.html" title="class in net.sf.saxon.type">TypeHierarchy</A>&nbsp;th)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the type of value returned by this function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#isInlineable()">isInlineable</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ask whether the function can be inlined</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#isMemoFunction()">isMemoFunction</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ask whether this function is a memo function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#isTailRecursive()">isTailRecursive</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine whether the function contains a tail call, calling itself</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#isUpdating()">isUpdating</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ask whether this is an updating function (as defined in XQuery Update)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/sf/saxon/evpull/EventIterator.html" title="interface in net.sf.saxon.evpull">EventIterator</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#iterateEvents(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor)">iterateEvents</A></B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
              <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call this function in "pull" mode, returning the results as a sequence of PullEvents.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#process(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor)">process</A></B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
        <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call this function in "push" mode, writing the results to the current output destination.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#setFunctionName(net.sf.saxon.om.StructuredQName)">setFunctionName</A></B>(<A HREF="../../../../../net/sf/saxon/om/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the function name</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#setInlineable(boolean)">setInlineable</A></B>(boolean&nbsp;inlineable)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Say whether this function can be inlined</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#setParameterDefinitions(net.sf.saxon.expr.instruct.UserFunctionParameter[])">setParameterDefinitions</A></B>(<A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunctionParameter.html" title="class in net.sf.saxon.expr.instruct">UserFunctionParameter</A>[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the definitions of the declared parameters for this function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#setResultType(net.sf.saxon.value.SequenceType)">setResultType</A></B>(<A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A>&nbsp;resultType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the declared result type of the function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#setTailRecursive(boolean, boolean)">setTailRecursive</A></B>(boolean&nbsp;tailCalls,
                 boolean&nbsp;recursiveTailCalls)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicate whether the function contains a tail call</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html#setUpdating(boolean)">setUpdating</A></B>(boolean&nbsp;isUpdating)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether this is an updating function (as defined in XQuery Update)</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_net.sf.saxon.expr.instruct.Procedure"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class net.sf.saxon.expr.instruct.<A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html" title="class in net.sf.saxon.expr.instruct">Procedure</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getBody()">getBody</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getColumnNumber()">getColumnNumber</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getColumnNumber(long)">getColumnNumber</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getContainerGranularity()">getContainerGranularity</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getExecutable()">getExecutable</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getHostLanguage()">getHostLanguage</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getLineNumber()">getLineNumber</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getLineNumber(long)">getLineNumber</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getLocationProvider()">getLocationProvider</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getProperties()">getProperties</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getProperty(java.lang.String)">getProperty</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getPublicId()">getPublicId</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getStackFrameMap()">getStackFrameMap</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getSystemId()">getSystemId</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#getSystemId(long)">getSystemId</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#setBody(net.sf.saxon.expr.Expression)">setBody</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#setExecutable(net.sf.saxon.expr.instruct.Executable)">setExecutable</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#setHostLanguage(int)">setHostLanguage</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#setLineNumber(int)">setLineNumber</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#setStackFrameMap(net.sf.saxon.expr.instruct.SlotManager)">setStackFrameMap</A>, <A HREF="../../../../../net/sf/saxon/expr/instruct/Procedure.html#setSystemId(java.lang.String)">setSystemId</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="evaluationMode"><!-- --></A><H3>
evaluationMode</H3>
<PRE>
protected int <B>evaluationMode</B></PRE>
<DL>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="UserFunction()"><!-- --></A><H3>
UserFunction</H3>
<PRE>
public <B>UserFunction</B>()</PRE>
<DL>
<DD>Create a user-defined function (the body must be added later)
<P>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="setFunctionName(net.sf.saxon.om.StructuredQName)"><!-- --></A><H3>
setFunctionName</H3>
<PRE>
public void <B>setFunctionName</B>(<A HREF="../../../../../net/sf/saxon/om/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A>&nbsp;name)</PRE>
<DL>
<DD>Set the function name
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the function name</DL>
</DD>
</DL>
<HR>

<A NAME="getFunctionName()"><!-- --></A><H3>
getFunctionName</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/om/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A> <B>getFunctionName</B>()</PRE>
<DL>
<DD>Get the function name
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the function name, as a StructuredQName</DL>
</DD>
</DL>
<HR>

<A NAME="getObjectName()"><!-- --></A><H3>
getObjectName</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/om/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A> <B>getObjectName</B>()</PRE>
<DL>
<DD>Get a name identifying the object of the expression, for example a function name, template name,
 variable name, key name, element name, etc. This is used only where the name is known statically.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the QName of the object declared or manipulated by this instruction or expression</DL>
</DD>
</DL>
<HR>

<A NAME="computeEvaluationMode()"><!-- --></A><H3>
computeEvaluationMode</H3>
<PRE>
public void <B>computeEvaluationMode</B>()</PRE>
<DL>
<DD>Determine the preferred evaluation mode for this function
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isInlineable()"><!-- --></A><H3>
isInlineable</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A> <B>isInlineable</B>()</PRE>
<DL>
<DD>Ask whether the function can be inlined
<P>
<DD><DL>

<DT><B>Returns:</B><DD>true (yes), false (no), or null (don't know)</DL>
</DD>
</DL>
<HR>

<A NAME="setInlineable(boolean)"><!-- --></A><H3>
setInlineable</H3>
<PRE>
public void <B>setInlineable</B>(boolean&nbsp;inlineable)</PRE>
<DL>
<DD>Say whether this function can be inlined
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>inlineable</CODE> - true or false</DL>
</DD>
</DL>
<HR>

<A NAME="setParameterDefinitions(net.sf.saxon.expr.instruct.UserFunctionParameter[])"><!-- --></A><H3>
setParameterDefinitions</H3>
<PRE>
public void <B>setParameterDefinitions</B>(<A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunctionParameter.html" title="class in net.sf.saxon.expr.instruct">UserFunctionParameter</A>[]&nbsp;params)</PRE>
<DL>
<DD>Set the definitions of the declared parameters for this function
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - an array of parameter definitions</DL>
</DD>
</DL>
<HR>

<A NAME="getParameterDefinitions()"><!-- --></A><H3>
getParameterDefinitions</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunctionParameter.html" title="class in net.sf.saxon.expr.instruct">UserFunctionParameter</A>[] <B>getParameterDefinitions</B>()</PRE>
<DL>
<DD>Get the definitions of the declared parameters for this function
<P>
<DD><DL>

<DT><B>Returns:</B><DD>an array of parameter definitions</DL>
</DD>
</DL>
<HR>

<A NAME="setResultType(net.sf.saxon.value.SequenceType)"><!-- --></A><H3>
setResultType</H3>
<PRE>
public void <B>setResultType</B>(<A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A>&nbsp;resultType)</PRE>
<DL>
<DD>Set the declared result type of the function
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>resultType</CODE> - the declared return type</DL>
</DD>
</DL>
<HR>

<A NAME="setTailRecursive(boolean, boolean)"><!-- --></A><H3>
setTailRecursive</H3>
<PRE>
public void <B>setTailRecursive</B>(boolean&nbsp;tailCalls,
                             boolean&nbsp;recursiveTailCalls)</PRE>
<DL>
<DD>Indicate whether the function contains a tail call
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>tailCalls</CODE> - true if the function contains a tail call (on any function)<DD><CODE>recursiveTailCalls</CODE> - true if the function contains a tail call (on itself)</DL>
</DD>
</DL>
<HR>

<A NAME="containsTailCalls()"><!-- --></A><H3>
containsTailCalls</H3>
<PRE>
public boolean <B>containsTailCalls</B>()</PRE>
<DL>
<DD>Determine whether the function contains tail calls (on this or other functions)
<P>
<DD><DL>

<DT><B>Returns:</B><DD>true if the function contains tail calls</DL>
</DD>
</DL>
<HR>

<A NAME="isTailRecursive()"><!-- --></A><H3>
isTailRecursive</H3>
<PRE>
public boolean <B>isTailRecursive</B>()</PRE>
<DL>
<DD>Determine whether the function contains a tail call, calling itself
<P>
<DD><DL>

<DT><B>Returns:</B><DD>true if the function contains a directly-recursive tail call</DL>
</DD>
</DL>
<HR>

<A NAME="setUpdating(boolean)"><!-- --></A><H3>
setUpdating</H3>
<PRE>
public void <B>setUpdating</B>(boolean&nbsp;isUpdating)</PRE>
<DL>
<DD>Set whether this is an updating function (as defined in XQuery Update)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>isUpdating</CODE> - true if this is an updating function</DL>
</DD>
</DL>
<HR>

<A NAME="isUpdating()"><!-- --></A><H3>
isUpdating</H3>
<PRE>
public boolean <B>isUpdating</B>()</PRE>
<DL>
<DD>Ask whether this is an updating function (as defined in XQuery Update)
<P>
<DD><DL>

<DT><B>Returns:</B><DD>true if this is an updating function</DL>
</DD>
</DL>
<HR>

<A NAME="getResultType(net.sf.saxon.type.TypeHierarchy)"><!-- --></A><H3>
getResultType</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A> <B>getResultType</B>(<A HREF="../../../../../net/sf/saxon/type/TypeHierarchy.html" title="class in net.sf.saxon.type">TypeHierarchy</A>&nbsp;th)</PRE>
<DL>
<DD>Get the type of value returned by this function
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>th</CODE> - the type hierarchy cache
<DT><B>Returns:</B><DD>the declared result type, or the inferred result type
 if this is more precise</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredResultType()"><!-- --></A><H3>
getDeclaredResultType</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A> <B>getDeclaredResultType</B>()</PRE>
<DL>
<DD>Get the declared result type
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the declared result type</DL>
</DD>
</DL>
<HR>

<A NAME="getArgumentType(int)"><!-- --></A><H3>
getArgumentType</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A> <B>getArgumentType</B>(int&nbsp;n)</PRE>
<DL>
<DD>Get the required types of an argument to this function
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n</CODE> - identifies the argument in question, starting at 0
<DT><B>Returns:</B><DD>a SequenceType object, indicating the required type of the argument</DL>
</DD>
</DL>
<HR>

<A NAME="getEvaluationMode()"><!-- --></A><H3>
getEvaluationMode</H3>
<PRE>
public int <B>getEvaluationMode</B>()</PRE>
<DL>
<DD>Get the evaluation mode. The evaluation mode will be computed if this has not already been done
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the computed evaluation mode</DL>
</DD>
</DL>
<HR>

<A NAME="getNumberOfArguments()"><!-- --></A><H3>
getNumberOfArguments</H3>
<PRE>
public int <B>getNumberOfArguments</B>()</PRE>
<DL>
<DD>Get the arity of this function
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the number of arguments</DL>
</DD>
</DL>
<HR>

<A NAME="isMemoFunction()"><!-- --></A><H3>
isMemoFunction</H3>
<PRE>
public boolean <B>isMemoFunction</B>()</PRE>
<DL>
<DD>Ask whether this function is a memo function
<P>
<DD><DL>

<DT><B>Returns:</B><DD>false (overridden in a subclass)</DL>
</DD>
</DL>
<HR>

<A NAME="gatherDirectContributingCallees(java.util.Set)"><!-- --></A><H3>
gatherDirectContributingCallees</H3>
<PRE>
public void <B>gatherDirectContributingCallees</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunction.html" title="class in net.sf.saxon.expr.instruct">UserFunction</A>&gt;&nbsp;result)</PRE>
<DL>
<DD>Gather the direct contributing callees of this function. A callee is a function that this one
 calls. A contributing callee is a function whose output is added directly to the output of this
 function without further processing (other than by attaching it to a parent element or document
 node). A direct contributing callee is a function that is called directly, rather than indirectly.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>result</CODE> - the list into which the callees are gathered.</DL>
</DD>
</DL>
<HR>

<A NAME="call(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor)"><!-- --></A><H3>
call</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A> <B>call</B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
                                <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context)
                         throws <A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Call this function to return a value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>actualArgs</CODE> - the arguments supplied to the function. These must have the correct
 types required by the function signature (it is the caller's responsibility to check this).
 It is acceptable to supply a <A HREF="../../../../../net/sf/saxon/value/Closure.html" title="class in net.sf.saxon.value"><CODE>Closure</CODE></A> to represent a value whose
 evaluation will be delayed until it is needed. The array must be the correct size to match
 the number of arguments: again, it is the caller's responsibility to check this.<DD><CODE>context</CODE> - This provides the run-time context for evaluating the function. It is the caller's
 responsibility to allocate a "clean" context for the function to use; the context that is provided
 will be overwritten by the function.
<DT><B>Returns:</B><DD>a Value representing the result of the function.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></CODE> - if a dynamic error occurs while evaluating the function</DL>
</DD>
</DL>
<HR>

<A NAME="process(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor)"><!-- --></A><H3>
process</H3>
<PRE>
public void <B>process</B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
                    <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context)
             throws <A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Call this function in "push" mode, writing the results to the current output destination.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>actualArgs</CODE> - the arguments supplied to the function. These must have the correct
 types required by the function signature (it is the caller's responsibility to check this).
 It is acceptable to supply a <A HREF="../../../../../net/sf/saxon/value/Closure.html" title="class in net.sf.saxon.value"><CODE>Closure</CODE></A> to represent a value whose
 evaluation will be delayed until it is needed. The array must be the correct size to match
 the number of arguments: again, it is the caller's responsibility to check this.<DD><CODE>context</CODE> - This provides the run-time context for evaluating the function. It is the caller's
 responsibility to allocate a "clean" context for the function to use; the context that is provided
 will be overwritten by the function.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></CODE> - if a dynamic error occurs while evaluating the function</DL>
</DD>
</DL>
<HR>

<A NAME="iterateEvents(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor)"><!-- --></A><H3>
iterateEvents</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/evpull/EventIterator.html" title="interface in net.sf.saxon.evpull">EventIterator</A> <B>iterateEvents</B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
                                   <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context)
                            throws <A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Call this function in "pull" mode, returning the results as a sequence of PullEvents.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>actualArgs</CODE> - the arguments supplied to the function. These must have the correct
 types required by the function signature (it is the caller's responsibility to check this).
 It is acceptable to supply a <A HREF="../../../../../net/sf/saxon/value/Closure.html" title="class in net.sf.saxon.value"><CODE>Closure</CODE></A> to represent a value whose
 evaluation will be delayed until it is needed. The array must be the correct size to match
 the number of arguments: again, it is the caller's responsibility to check this.<DD><CODE>context</CODE> - This provides the run-time context for evaluating the function. It is the caller's
 responsibility to allocate a "clean" context for the function to use; the context that is provided
 will be overwritten by the function.
<DT><B>Returns:</B><DD>an iterator over the results of the function call
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></CODE> - if a dynamic error occurs while evaluating the function</DL>
</DD>
</DL>
<HR>

<A NAME="call(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.Controller)"><!-- --></A><H3>
call</H3>
<PRE>
public <A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A> <B>call</B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
                                <A HREF="../../../../../net/sf/saxon/Controller.html" title="class in net.sf.saxon">Controller</A>&nbsp;controller)
                         throws <A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Call this function. This method allows an XQuery function to be called directly from a Java
 application. It creates the environment needed to achieve this
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>actualArgs</CODE> - the arguments supplied to the function. These must have the correct
 types required by the function signature (it is the caller's responsibility to check this).
 It is acceptable to supply a <A HREF="../../../../../net/sf/saxon/value/Closure.html" title="class in net.sf.saxon.value"><CODE>Closure</CODE></A> to represent a value whose
 evaluation will be delayed until it is needed. The array must be the correct size to match
 the number of arguments: again, it is the caller's responsibility to check this.<DD><CODE>controller</CODE> - This provides the run-time context for evaluating the function. A Controller
 may be obtained by calling <A HREF="../../../../../net/sf/saxon/query/XQueryExpression.html#newController()"><CODE>XQueryExpression.newController()</CODE></A>. This may
 be used for a series of calls on functions defined in the same module as the XQueryExpression.
<DT><B>Returns:</B><DD>a Value representing the result of the function.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></CODE> - if a dynamic error occurs while evaluating the function.</DL>
</DD>
</DL>
<HR>

<A NAME="callUpdating(net.sf.saxon.om.ValueRepresentation[], net.sf.saxon.expr.XPathContextMajor, net.sf.saxon.expr.PendingUpdateList)"><!-- --></A><H3>
callUpdating</H3>
<PRE>
public void <B>callUpdating</B>(<A HREF="../../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>[]&nbsp;actualArgs,
                         <A HREF="../../../../../net/sf/saxon/expr/XPathContextMajor.html" title="class in net.sf.saxon.expr">XPathContextMajor</A>&nbsp;context,
                         <A HREF="../../../../../net/sf/saxon/expr/PendingUpdateList.html" title="interface in net.sf.saxon.expr">PendingUpdateList</A>&nbsp;pul)
                  throws <A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Call an updating function.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>actualArgs</CODE> - the arguments supplied to the function. These must have the correct
 types required by the function signature (it is the caller's responsibility to check this).
 It is acceptable to supply a <A HREF="../../../../../net/sf/saxon/value/Closure.html" title="class in net.sf.saxon.value"><CODE>Closure</CODE></A> to represent a value whose
 evaluation will be delayed until it is needed. The array must be the correct size to match
 the number of arguments: again, it is the caller's responsibility to check this.<DD><CODE>context</CODE> - the dynamic evaluation context<DD><CODE>pul</CODE> - the pending updates list, to which the function's update actions are to be added.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></CODE> - if a dynamic error occurs while evaluating the function.</DL>
</DD>
</DL>
<HR>

<A NAME="getConstructType()"><!-- --></A><H3>
getConstructType</H3>
<PRE>
public int <B>getConstructType</B>()</PRE>
<DL>
<DD>Get the type of construct. This will either be the fingerprint of a standard XSLT instruction name
 (values in <A HREF="../../../../../net/sf/saxon/om/StandardNames.html" title="class in net.sf.saxon.om"><CODE>StandardNames</CODE></A>: all less than 1024)
 or it will be a constant in class <A HREF="../../../../../net/sf/saxon/trace/Location.html" title="class in net.sf.saxon.trace"><CODE>Location</CODE></A>.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>an integer identifying the kind of construct</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../net/sf/saxon/expr/instruct/UseAttributeSets.html" title="class in net.sf.saxon.expr.instruct"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../net/sf/saxon/expr/instruct/UserFunctionParameter.html" title="class in net.sf.saxon.expr.instruct"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?net/sf/saxon/expr/instruct/UserFunction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="UserFunction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.
</BODY>
</HTML>