Sophie

Sophie

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

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:20 GMT 2011 -->
<TITLE>
ExtensionFunctionCall
</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="ExtensionFunctionCall";
    }
}
</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/lib/ConversionRules.html" title="class in net.sf.saxon.lib"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html" title="class in net.sf.saxon.lib"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?net/sf/saxon/lib/ExtensionFunctionCall.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ExtensionFunctionCall.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;FIELD&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;FIELD&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.lib</FONT>
<BR>
Class ExtensionFunctionCall</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 "><B>net.sf.saxon.lib.ExtensionFunctionCall</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></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/saxonica/functions/hof/DynamicFunctionCallDefinition.DynamicFunctionCall.html" title="class in com.saxonica.functions.hof">DynamicFunctionCallDefinition.DynamicFunctionCall</A>, <A HREF="../../../../com/saxonica/functions/extfn/Evaluate.EvaluateCall.html" title="class in com.saxonica.functions.extfn">Evaluate.EvaluateCall</A>, <A HREF="../../../../com/saxonica/functions/extfn/GeneralFilterFunction.GeneralFilterFunctionCall.html" title="class in com.saxonica.functions.extfn">GeneralFilterFunction.GeneralFilterFunctionCall</A>, <A HREF="../../../../com/saxonica/functions/extfn/Parse.ParseCall.html" title="class in com.saxonica.functions.extfn">Parse.ParseCall</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>ExtensionFunctionCall</B><DT>extends <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><DT>implements <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></DL>
</PRE>

<P>
This abstract class is provided to allow user-written extension functions to be implemented
 with the full capabilities of functions that are an intrinsic part of the Saxon product.
 In particular, the class has the opportunity to save data from the static context and
 to optimize itself at compile time.

 <p>Instances of this class are created by calling the method makeCallExpression() on the
 <A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html" title="class in net.sf.saxon.lib"><CODE>ExtensionFunctionDefinition</CODE></A> object that represents the definition of the function.</p>

 <p>The compiler will create one instance of this class for each function call appearing in the
 expression being compiled. The class must therefore have a public zero-argument constructor.</p>

 <p>The compiler will ensure that the supplied arguments in the extension function call are converted
 if necessary to the declared argument types, by applying the standard conversion rules. The result
 returned by the function is checked against the declared return type, but no conversion takes place:
 the returned value must strictly conform to the declared type.</p>

 <p>Note that an IntegratedFunction is trusted; calls are allowed even if the configuration option
 <A HREF="../../../../net/sf/saxon/lib/FeatureKeys.html#ALLOW_EXTERNAL_FUNCTIONS"><CODE>FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS</CODE></A> is false. In cases where an IntegratedFunction
 is used to load and execute untrusted code, it should check this configuration option before doing so.</p>
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>9.2</DD>
<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#net.sf.saxon.lib.ExtensionFunctionCall">Serialized Form</A></DL>
<HR>

<P>

<!-- ======== 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/lib/ExtensionFunctionCall.html#ExtensionFunctionCall()">ExtensionFunctionCall</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>abstract &nbsp;<A HREF="../../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om">SequenceIterator</A>&lt;? extends <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html#call(net.sf.saxon.om.SequenceIterator[], net.sf.saxon.expr.XPathContext)">call</A></B>(<A HREF="../../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om">SequenceIterator</A>&lt;? extends <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A>&gt;[]&nbsp;arguments,
     <A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;context)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluate this function call at run-time</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/lib/ExtensionFunctionCall.html#copyLocalData(net.sf.saxon.lib.ExtensionFunctionCall)">copyLocalData</A></B>(<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html" title="class in net.sf.saxon.lib">ExtensionFunctionCall</A>&nbsp;destination)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy local data from one copy of the function to another.</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/lib/ExtensionFunctionCall.html#effectiveBooleanValue(net.sf.saxon.om.SequenceIterator[], net.sf.saxon.expr.XPathContext)">effectiveBooleanValue</A></B>(<A HREF="../../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om">SequenceIterator</A>&lt;? extends <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A>&gt;[]&nbsp;arguments,
                      <A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;context)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compute the effective boolean value of the result.</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/Container.html" title="interface in net.sf.saxon.expr">Container</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html#getContainer()">getContainer</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the container of the expression.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html" title="class in net.sf.saxon.lib">ExtensionFunctionDefinition</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html#getDefinition()">getDefinition</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the definition of this extension 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/expr/instruct/Executable.html" title="class in net.sf.saxon.expr.instruct">Executable</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html#getExecutable()">getExecutable</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Executable in which this extension function call occurs</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/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html#rewrite(net.sf.saxon.expr.StaticContext, net.sf.saxon.expr.Expression[])">rewrite</A></B>(<A HREF="../../../../net/sf/saxon/expr/StaticContext.html" title="interface in net.sf.saxon.expr">StaticContext</A>&nbsp;context,
        <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>[]&nbsp;arguments)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rewrite the function 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/lib/ExtensionFunctionCall.html#setDefinition(net.sf.saxon.lib.ExtensionFunctionDefinition, net.sf.saxon.expr.Container)">setDefinition</A></B>(<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html" title="class in net.sf.saxon.lib">ExtensionFunctionDefinition</A>&nbsp;definition,
              <A HREF="../../../../net/sf/saxon/expr/Container.html" title="interface in net.sf.saxon.expr">Container</A>&nbsp;container)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called by the system to provide information about the extension function 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/lib/ExtensionFunctionCall.html#supplyStaticContext(net.sf.saxon.expr.StaticContext, int, net.sf.saxon.expr.Expression[])">supplyStaticContext</A></B>(<A HREF="../../../../net/sf/saxon/expr/StaticContext.html" title="interface in net.sf.saxon.expr">StaticContext</A>&nbsp;context,
                    int&nbsp;locationId,
                    <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>[]&nbsp;arguments)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supply static context information.</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>

<!-- ========= 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="ExtensionFunctionCall()"><!-- --></A><H3>
ExtensionFunctionCall</H3>
<PRE>
public <B>ExtensionFunctionCall</B>()</PRE>
<DL>
</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="setDefinition(net.sf.saxon.lib.ExtensionFunctionDefinition, net.sf.saxon.expr.Container)"><!-- --></A><H3>
setDefinition</H3>
<PRE>
public final void <B>setDefinition</B>(<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html" title="class in net.sf.saxon.lib">ExtensionFunctionDefinition</A>&nbsp;definition,
                                <A HREF="../../../../net/sf/saxon/expr/Container.html" title="interface in net.sf.saxon.expr">Container</A>&nbsp;container)</PRE>
<DL>
<DD>This method is called by the system to provide information about the extension function call.
 It should not be called by the implementor of the extension function.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>definition</CODE> - the extension function definition<DD><CODE>container</CODE> - the container of the extension function call, providing access to location information</DL>
</DD>
</DL>
<HR>

<A NAME="getDefinition()"><!-- --></A><H3>
getDefinition</H3>
<PRE>
public final <A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html" title="class in net.sf.saxon.lib">ExtensionFunctionDefinition</A> <B>getDefinition</B>()</PRE>
<DL>
<DD>Get the definition of this extension function
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the function definition from which this ExtensionFunctionCall was created</DL>
</DD>
</DL>
<HR>

<A NAME="getExecutable()"><!-- --></A><H3>
getExecutable</H3>
<PRE>
public final <A HREF="../../../../net/sf/saxon/expr/instruct/Executable.html" title="class in net.sf.saxon.expr.instruct">Executable</A> <B>getExecutable</B>()</PRE>
<DL>
<DD>Get the Executable in which this extension function call occurs
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the containing executable<DT><B>Since:</B></DT>
  <DD>9.3</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="getContainer()"><!-- --></A><H3>
getContainer</H3>
<PRE>
public final <A HREF="../../../../net/sf/saxon/expr/Container.html" title="interface in net.sf.saxon.expr">Container</A> <B>getContainer</B>()</PRE>
<DL>
<DD>Get the container of the expression. This provides information about the location
 of the expression (potentially useful for diagnostics). Any new expression that is created
 while rewriting this expression should have the same container assigned.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the container of the extension function call expression<DT><B>Since:</B></DT>
  <DD>9.3</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="supplyStaticContext(net.sf.saxon.expr.StaticContext, int, net.sf.saxon.expr.Expression[])"><!-- --></A><H3>
supplyStaticContext</H3>
<PRE>
public void <B>supplyStaticContext</B>(<A HREF="../../../../net/sf/saxon/expr/StaticContext.html" title="interface in net.sf.saxon.expr">StaticContext</A>&nbsp;context,
                                int&nbsp;locationId,
                                <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>[]&nbsp;arguments)
                         throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Supply static context information.
 <p>This method is called during compilation to provide information about the static context in which
 the function call appears. If the implementation of the function needs information from the static context,
 then it should save it now, as it will not be available later at run-time.</p>
 <p>The implementation also has the opportunity to examine the expressions that appear in the
 arguments to the function call at this stage. These might already have been modified from the original
 expressions as written by the user. The implementation must not modify any of these expressions.</p>
 <p>The default implementation of this method does nothing.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - The static context in which the function call appears. The method must not modify
 the static context.<DD><CODE>locationId</CODE> - An integer code representing the location of the call to the extension function
 in the stylesheet; can be used in conjunction with the locationMap held in the static context for diagnostics<DD><CODE>arguments</CODE> - The XPath expressions supplied in the call to this function. The method must not
 modify this array, or any of the expressions contained in the array.
<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 the implementation is able to detect a static error in the way the
 function is being called (for example it might require that the types of the arguments are
 consistent with each other).</DL>
</DD>
</DL>
<HR>

<A NAME="rewrite(net.sf.saxon.expr.StaticContext, net.sf.saxon.expr.Expression[])"><!-- --></A><H3>
rewrite</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A> <B>rewrite</B>(<A HREF="../../../../net/sf/saxon/expr/StaticContext.html" title="interface in net.sf.saxon.expr">StaticContext</A>&nbsp;context,
                          <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>[]&nbsp;arguments)
                   throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Rewrite the function call. This method is called at compile time. It gives the implementation
 an opportunity to replace itself with an optimized implementation that returns the same result.
 This includes the ability to pre-evaluate the function and return its result as a literal value.

 <p>There is also a further opportunity to perform static checking at this stage and to throw an error
 if the arguments are invalid.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - The static context in which the function call appears. The method must not modify
 the static context.<DD><CODE>arguments</CODE> - The XPath expressions supplied in the call to this function. This method is called
 after type-checking, so these expressions may have been modified by adding atomization operators
 or type-checking operations, for example.
<DT><B>Returns:</B><DD>an expression to be evaluated at run-time in place of this function call. Return null
 if no rewriting is required and the function call should be used unchanged. Return a
 <A HREF="../../../../net/sf/saxon/expr/Literal.html" title="class in net.sf.saxon.expr"><CODE>Literal</CODE></A> representing the result of the function call if the function call
 can be precomputed at compile time
<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 the implementation is able to detect a static error in the way the
 function is being called (for example it might require that the types of the arguments are
 consistent with each other).</DL>
</DD>
</DL>
<HR>

<A NAME="copyLocalData(net.sf.saxon.lib.ExtensionFunctionCall)"><!-- --></A><H3>
copyLocalData</H3>
<PRE>
public void <B>copyLocalData</B>(<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html" title="class in net.sf.saxon.lib">ExtensionFunctionCall</A>&nbsp;destination)</PRE>
<DL>
<DD>Copy local data from one copy of the function to another. This method must be implemented
 in any implementation that maintains local data retained from the static context; the job of the
 method is to copy this local data to the supplied destination function.

 <p>This method is called if a call to the extension function needs to be copied during
 the process of optimization. For example, this occurs if the function containing the call
 to the extension function is inlined.</p>

 <p>If any objects held as local data for the function call are mutable then deep copies must
 be made.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>destination</CODE> - the function to which the local data must be copied. This will always
 be an instance of the same function class as the source function.</DL>
</DD>
</DL>
<HR>

<A NAME="call(net.sf.saxon.om.SequenceIterator[], net.sf.saxon.expr.XPathContext)"><!-- --></A><H3>
call</H3>
<PRE>
public abstract <A HREF="../../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om">SequenceIterator</A>&lt;? extends <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A>&gt; <B>call</B>(<A HREF="../../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om">SequenceIterator</A>&lt;? extends <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A>&gt;[]&nbsp;arguments,
                                                      <A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;context)
                                               throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Evaluate this function call at run-time
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>arguments</CODE> - The values of the arguments to the function call. Each argument value (which is in general
 a sequence) is supplied in the form of an iterator over the items in the sequence. Any required conversions
 to the declared types of the arguments will already have been performed.

 <p>If required, the supplied sequence can be materialized by calling, for example,
 <code>new SequenceExtent(arguments[i])</code>.
 If the argument is always a singleton, then the single item may be obtained by calling
 <code>arguments[i].next()</code>.</p>

 <p>The implementation is not obliged to read all the items in each <code>SequenceIterator</code>
 if they are not required to compute the result; but if any <code>SequenceIterator</code> is not read
 to completion, it is good practice to call its <code>close()</code> method.</p><DD><CODE>context</CODE> - The XPath dynamic evaluation context
<DT><B>Returns:</B><DD>an iterator over the results of the function.

 <p>The implementation is responsible for ensuring that the result is a valid instance of the declared
 result type. Saxon will check that this is the case if the <A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html#trustResultType()"><CODE>ExtensionFunctionDefinition.trustResultType()</CODE></A>
 method returns false, but it will never convert the supplied result value to the declared result type.</p>

 <p>If the result is a single item, it can be returned in the form of a <A HREF="../../../../net/sf/saxon/tree/iter/SingletonIterator.html" title="class in net.sf.saxon.tree.iter"><CODE>SingletonIterator</CODE></A>.
 If the result is an empty sequence, the method should return <A HREF="../../../../net/sf/saxon/tree/iter/EmptyIterator.html#getInstance()"><CODE>EmptyIterator.getInstance()</CODE></A></p>
<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 during evaluation of the function. The Saxon run-time
 code will add information about the error location.</DL>
</DD>
</DL>
<HR>

<A NAME="effectiveBooleanValue(net.sf.saxon.om.SequenceIterator[], net.sf.saxon.expr.XPathContext)"><!-- --></A><H3>
effectiveBooleanValue</H3>
<PRE>
public boolean <B>effectiveBooleanValue</B>(<A HREF="../../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om">SequenceIterator</A>&lt;? extends <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A>&gt;[]&nbsp;arguments,
                                     <A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;context)
                              throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Compute the effective boolean value of the result.

 <p>Implementations can override this method but are not required to do so. If it is overridden,
 the result must be consistent with the rules for calculating effective boolean value. The method
 should be implemented in cases where computing the effective boolean value is significantly cheaper
 than computing the full result.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - The XPath dynamic evaluation context<DD><CODE>arguments</CODE> - The values of the arguments to the function call. Each argument value (which is in general
 a sequence) is supplied in the form of an iterator over the items in the sequence. If required, the
 supplied sequence can be materialized by calling, for example, <code>new SequenceExtent(arguments[i])</code>.
 If the argument is always a singleton, then the single item may be obtained by calling
 <code>arguments[i].next()</code>. The implementation is not obliged to read all the items in each
 <code>SequenceIterator</code> if they are not required to compute the result; but if any SequenceIterator is not read
 to completion, it is good practice to call its close() method.
<DT><B>Returns:</B><DD>the effective boolean value of the result
<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 during evaluation of the function. The Saxon run-time
 code will add information about the error location.</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/lib/ConversionRules.html" title="class in net.sf.saxon.lib"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html" title="class in net.sf.saxon.lib"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?net/sf/saxon/lib/ExtensionFunctionCall.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ExtensionFunctionCall.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;FIELD&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;FIELD&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>