Sophie

Sophie

distrib > Mageia > 7 > x86_64 > by-pkgid > b3bdfe6d859a3d6920ff2c44b38e9a6f > files > 2198

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>
ExtensionFunctionDefinition
</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="ExtensionFunctionDefinition";
    }
}
</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/ExtensionFunctionCall.html" title="class in net.sf.saxon.lib"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../net/sf/saxon/lib/ExternalObjectModel.html" title="interface 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/ExtensionFunctionDefinition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ExtensionFunctionDefinition.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 ExtensionFunctionDefinition</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.ExtensionFunctionDefinition</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/extfn/AnalyzeStringFunction.html" title="class in com.saxonica.functions.extfn">AnalyzeStringFunction</A>, <A HREF="../../../../com/saxonica/functions/xpath3/Atan2Fn.html" title="class in com.saxonica.functions.xpath3">Atan2Fn</A>, <A HREF="../../../../com/saxonica/functions/extfn/CompileQuery.html" title="class in com.saxonica.functions.extfn">CompileQuery</A>, <A HREF="../../../../com/saxonica/functions/extfn/CompileStylesheet.html" title="class in com.saxonica.functions.extfn">CompileStylesheet</A>, <A HREF="../../../../com/saxonica/functions/extfn/DeepEqual.html" title="class in com.saxonica.functions.extfn">DeepEqual</A>, <A HREF="../../../../com/saxonica/functions/extfn/Deref.html" title="class in com.saxonica.functions.extfn">Deref</A>, <A HREF="../../../../com/saxonica/functions/extfn/DynamicErrorInfo.html" title="class in com.saxonica.functions.extfn">DynamicErrorInfo</A>, <A HREF="../../../../com/saxonica/functions/hof/DynamicFunctionCallDefinition.html" title="class in com.saxonica.functions.hof">DynamicFunctionCallDefinition</A>, <A HREF="../../../../com/saxonica/functions/hof/DynamicFunctionConstructor.html" title="class in com.saxonica.functions.hof">DynamicFunctionConstructor</A>, <A HREF="../../../../com/saxonica/functions/extfn/Evaluate.html" title="class in com.saxonica.functions.extfn">Evaluate</A>, <A HREF="../../../../com/saxonica/functions/extfn/Find.html" title="class in com.saxonica.functions.extfn">Find</A>, <A HREF="../../../../com/saxonica/functions/extfn/ForEachGroupFunction.html" title="class in com.saxonica.functions.extfn">ForEachGroupFunction</A>, <A HREF="../../../../com/saxonica/functions/extfn/GeneralFilterFunction.html" title="class in com.saxonica.functions.extfn">GeneralFilterFunction</A>, <A HREF="../../../../com/saxonica/functions/extfn/Index.html" title="class in com.saxonica.functions.extfn">Index</A>, <A HREF="../../../../net/sf/saxon/functions/IsWholeNumber.html" title="class in net.sf.saxon.functions">IsWholeNumber</A>, <A HREF="../../../../net/sf/saxon/functions/ItemAt.html" title="class in net.sf.saxon.functions">ItemAt</A>, <A HREF="../../../../com/saxonica/functions/extfn/LastModified.html" title="class in com.saxonica.functions.extfn">LastModified</A>, <A HREF="../../../../com/saxonica/functions/map/MapCollation.html" title="class in com.saxonica.functions.map">MapCollation</A>, <A HREF="../../../../com/saxonica/functions/map/MapContains.html" title="class in com.saxonica.functions.map">MapContains</A>, <A HREF="../../../../com/saxonica/functions/map/MapEntry.html" title="class in com.saxonica.functions.map">MapEntry</A>, <A HREF="../../../../com/saxonica/functions/map/MapGet.html" title="class in com.saxonica.functions.map">MapGet</A>, <A HREF="../../../../com/saxonica/functions/map/MapKeys.html" title="class in com.saxonica.functions.map">MapKeys</A>, <A HREF="../../../../com/saxonica/functions/map/MapNew.html" title="class in com.saxonica.functions.map">MapNew</A>, <A HREF="../../../../com/saxonica/functions/map/MapRemove.html" title="class in com.saxonica.functions.map">MapRemove</A>, <A HREF="../../../../com/saxonica/functions/map/MapSize.html" title="class in com.saxonica.functions.map">MapSize</A>, <A HREF="../../../../com/saxonica/functions/extfn/Parse.html" title="class in com.saxonica.functions.extfn">Parse</A>, <A HREF="../../../../com/saxonica/functions/xpath3/Pi.html" title="class in com.saxonica.functions.xpath3">Pi</A>, <A HREF="../../../../com/saxonica/functions/xpath3/PowFn.html" title="class in com.saxonica.functions.xpath3">PowFn</A>, <A HREF="../../../../com/saxonica/functions/extfn/QueryFn.html" title="class in com.saxonica.functions.extfn">QueryFn</A>, <A HREF="../../../../com/saxonica/functions/extfn/Ref.html" title="class in com.saxonica.functions.extfn">Ref</A>, <A HREF="../../../../com/saxonica/functions/extfn/Serialize.html" title="class in com.saxonica.functions.extfn">Serialize</A>, <A HREF="../../../../com/saxonica/functions/extfn/SubsequenceTestFn.html" title="class in com.saxonica.functions.extfn">SubsequenceTestFn</A>, <A HREF="../../../../com/saxonica/functions/extfn/TransformFn.html" title="class in com.saxonica.functions.extfn">TransformFn</A>, <A HREF="../../../../com/saxonica/functions/xpath3/TrigonometricFn.html" title="class in com.saxonica.functions.xpath3">TrigonometricFn</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>ExtensionFunctionDefinition</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>There should be one class implementing this interface for each function name; if there
 are several functions with the same name but different arity, the same class should implement
 them all.</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.ExtensionFunctionDefinition">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/ExtensionFunctionDefinition.html#ExtensionFunctionDefinition()">ExtensionFunctionDefinition</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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html#dependsOnFocus()">dependsOnFocus</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ask whether the result of the function depends on the focus, or on other variable parts
 of the context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &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/lib/ExtensionFunctionDefinition.html#getArgumentTypes()">getArgumentTypes</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the required types for the arguments of this function.</TD>
</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/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html#getFunctionQName()">getFunctionQName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the name of the function, as a QName.</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/lib/ExtensionFunctionDefinition.html#getMaximumNumberOfArguments()">getMaximumNumberOfArguments</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the maximum number of arguments allowed by the 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/lib/ExtensionFunctionDefinition.html#getMinimumNumberOfArguments()">getMinimumNumberOfArguments</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the minimum number of arguments required by the function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &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/lib/ExtensionFunctionDefinition.html#getResultType(net.sf.saxon.value.SequenceType[])">getResultType</A></B>(<A HREF="../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A>[]&nbsp;suppliedArgumentTypes)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the type of the result of the 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/lib/ExtensionFunctionDefinition.html#hasSideEffects()">hasSideEffects</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ask whether the function has side-effects.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html" title="class in net.sf.saxon.lib">ExtensionFunctionCall</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html#makeCallExpression()">makeCallExpression</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a call on 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/lib/ExtensionFunctionDefinition.html#trustResultType()">trustResultType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ask whether the result actually returned by the function can be trusted,
 or whether it should be checked against the declared type.</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="ExtensionFunctionDefinition()"><!-- --></A><H3>
ExtensionFunctionDefinition</H3>
<PRE>
public <B>ExtensionFunctionDefinition</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="getFunctionQName()"><!-- --></A><H3>
getFunctionQName</H3>
<PRE>
public abstract <A HREF="../../../../net/sf/saxon/om/StructuredQName.html" title="class in net.sf.saxon.om">StructuredQName</A> <B>getFunctionQName</B>()</PRE>
<DL>
<DD>Get the name of the function, as a QName.
 <p>This method must be implemented in all subclasses</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the function name</DL>
</DD>
</DL>
<HR>

<A NAME="getMinimumNumberOfArguments()"><!-- --></A><H3>
getMinimumNumberOfArguments</H3>
<PRE>
public int <B>getMinimumNumberOfArguments</B>()</PRE>
<DL>
<DD>Get the minimum number of arguments required by the function
 <p>The default implementation returns the number of items in the result of calling
 <A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html#getArgumentTypes()"><CODE>getArgumentTypes()</CODE></A></p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the minimum number of arguments that must be supplied in a call to this function</DL>
</DD>
</DL>
<HR>

<A NAME="getMaximumNumberOfArguments()"><!-- --></A><H3>
getMaximumNumberOfArguments</H3>
<PRE>
public int <B>getMaximumNumberOfArguments</B>()</PRE>
<DL>
<DD>Get the maximum number of arguments allowed by the function.
 <p>The default implementation returns the value of <A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html#getMinimumNumberOfArguments()"><CODE>getMinimumNumberOfArguments()</CODE></A>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the maximum number of arguments that may be supplied in a call to this function</DL>
</DD>
</DL>
<HR>

<A NAME="getArgumentTypes()"><!-- --></A><H3>
getArgumentTypes</H3>
<PRE>
public abstract <A HREF="../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A>[] <B>getArgumentTypes</B>()</PRE>
<DL>
<DD>Get the required types for the arguments of this function.
 <p>This method must be implemented in all subtypes.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the required types of the arguments, as defined by the function signature. Normally
 this should be an array of size <A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionDefinition.html#getMaximumNumberOfArguments()"><CODE>getMaximumNumberOfArguments()</CODE></A>; however for functions
 that allow a variable number of arguments, the array can be smaller than this, with the last
 entry in the array providing the required type for all the remaining arguments.</DL>
</DD>
</DL>
<HR>

<A NAME="getResultType(net.sf.saxon.value.SequenceType[])"><!-- --></A><H3>
getResultType</H3>
<PRE>
public abstract <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/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A>[]&nbsp;suppliedArgumentTypes)</PRE>
<DL>
<DD>Get the type of the result of the function
 <p>This method must be implemented in all subtypes.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>suppliedArgumentTypes</CODE> - the static types of the supplied arguments to the function.
 This is provided so that a more precise result type can be returned in the common
 case where the type of the result depends on the types of the arguments.
<DT><B>Returns:</B><DD>the return type of the function, as defined by its function signature</DL>
</DD>
</DL>
<HR>

<A NAME="trustResultType()"><!-- --></A><H3>
trustResultType</H3>
<PRE>
public boolean <B>trustResultType</B>()</PRE>
<DL>
<DD>Ask whether the result actually returned by the function can be trusted,
 or whether it should be checked against the declared type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the function implementation warrants that the value it returns will
 be an instance of the declared result type. The default value is false, in which case
 the result will be checked at run-time to ensure that it conforms to the declared type.
 If the value true is returned, but the function returns a value of the wrong type, the
 consequences are unpredictable.</DL>
</DD>
</DL>
<HR>

<A NAME="dependsOnFocus()"><!-- --></A><H3>
dependsOnFocus</H3>
<PRE>
public boolean <B>dependsOnFocus</B>()</PRE>
<DL>
<DD>Ask whether the result of the function depends on the focus, or on other variable parts
 of the context.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the result of the function depends on the context item, position, or size.
 Despite the method name, the method should also return true if the function depends on other
 parts of the context that vary from one part of the query/stylesheet to another, for example
 the XPath default namespace.
 <p>The default implementation returns false.</p>
 <p>The method must return true if the function
 makes use of any of these values from the dynamic context. Returning true inhibits certain
 optimizations, such as moving the function call out of the body of an xsl:for-each loop,
 or extracting it into a global variable.</p></DL>
</DD>
</DL>
<HR>

<A NAME="hasSideEffects()"><!-- --></A><H3>
hasSideEffects</H3>
<PRE>
public boolean <B>hasSideEffects</B>()</PRE>
<DL>
<DD>Ask whether the function has side-effects. If the function does have side-effects, the optimizer
 will be less aggressive in moving or removing calls to the function. However, calls on functions
 with side-effects can never be guaranteed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the function has side-effects (including creation of new nodes, if the
 identity of those nodes is significant). The default implementation returns false.</DL>
</DD>
</DL>
<HR>

<A NAME="makeCallExpression()"><!-- --></A><H3>
makeCallExpression</H3>
<PRE>
public abstract <A HREF="../../../../net/sf/saxon/lib/ExtensionFunctionCall.html" title="class in net.sf.saxon.lib">ExtensionFunctionCall</A> <B>makeCallExpression</B>()</PRE>
<DL>
<DD>Create a call on this function. This method is called by the compiler when it identifies
 a function call that calls this function.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>an expression representing a call of this extension function</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/ExtensionFunctionCall.html" title="class in net.sf.saxon.lib"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../net/sf/saxon/lib/ExternalObjectModel.html" title="interface 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/ExtensionFunctionDefinition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ExtensionFunctionDefinition.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>