<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD>
<BODY>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center">The Xalan C++ XSLT Processor Version 1.10</h3>
</BODY>
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>FunctionStartsWith  Class Reference</h1><a class="el" href="classXPath.html">XPath</a> implementation of "starts-with" function. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="FunctionStartsWith_8hpp-source.html">FunctionStartsWith.hpp</a>&gt;</code>
<p>
Inheritance diagram for FunctionStartsWith:<p><center><img src="classFunctionStartsWith__inherit__graph.gif" border="0" usemap="#FunctionStartsWith_inherit_map" alt="Inheritance graph"></center>
<map name="FunctionStartsWith_inherit_map">
<area href="classFunction.html" shape="rect" coords="36,42,102,18">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for FunctionStartsWith:<p><center><img src="classFunctionStartsWith__coll__graph.gif" border="0" usemap="#FunctionStartsWith_coll_map" alt="Collaboration graph"></center>
<map name="FunctionStartsWith_coll_map">
<area href="classFunction.html" shape="rect" coords="36,42,102,18">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classFunctionStartsWith-members.html">List of all members.</a><h2>Public Types</h2>
<ul>
<li>typedef <a class="el" href="classFunction.html">Function</a> <a class="el" href="classFunctionStartsWith.html#s0">ParentType</a>
</ul>
<h2>Public Methods</h2>
<ul>
<li><a class="el" href="classFunctionStartsWith.html#a0">FunctionStartsWith</a> ()
<li>virtual <a class="el" href="classFunctionStartsWith.html#a1">~FunctionStartsWith</a> ()
<li>virtual <a class="el" href="classXObjectPtr.html">XObjectPtr</a> <a class="el" href="classFunctionStartsWith.html#a2">execute</a> (<a class="el" href="classXPathExecutionContext.html">XPathExecutionContext</a> &amp;executionContext, <a class="el" href="classXalanNode.html">XalanNode</a> *context, const <a class="el" href="classXObjectPtr.html">XObjectPtr</a> arg1, const <a class="el" href="classXObjectPtr.html">XObjectPtr</a> arg2, const <a class="el" href="classFunction.html#s0">LocatorType</a> *locator) const
<dl class="el"><dd><font size=-1><em>Execute an <a class="el" href="classXPath.html">XPath</a> function object.</em> <a href="#a2">More...</a><em><br><br></em></font></dl><li>virtual FunctionStartsWith* <a class="el" href="classFunctionStartsWith.html#a3">clone</a> (<a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp;theManager) const
<dl class="el"><dd><font size=-1><em>Create a copy of the function object.</em> <a href="#a3">More...</a><em><br><br></em></font></dl></ul>
<h2>Protected Methods</h2>
<ul>
<li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classFunctionStartsWith.html#b0">getError</a> (<a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;theResult) const
<dl class="el"><dd><font size=-1><em>Get the error message to report when the function is called with the wrong number of arguments.</em> <a href="#b0">More...</a><em><br><br></em></font></dl></ul>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="classXPath.html">XPath</a> implementation of "starts-with" function.
<p>
<hr><h2>Member Typedef Documentation</h2>
<a name="s0" doxytag="FunctionStartsWith::ParentType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
typedef <a class="el" href="classFunction.html">Function</a> FunctionStartsWith::ParentType
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="FunctionStartsWith::FunctionStartsWith"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
FunctionStartsWith::FunctionStartsWith (
          </b></td>
          <td valign="bottom"><b>
)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="a1" doxytag="FunctionStartsWith::~FunctionStartsWith"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
FunctionStartsWith::~FunctionStartsWith (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a3" doxytag="FunctionStartsWith::clone"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
FunctionStartsWith * FunctionStartsWith::clone (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="XalanMemoryManagement_8hpp.html#a5">MemoryManagerType</a> &amp; <em>theManager</em>&nbsp;) const<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Create a copy of the function object.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
pointer to the new object </dl>
<p>
Reimplemented from <a class="el" href="classFunction.html#a7">Function</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="FunctionStartsWith::execute"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXObjectPtr.html">XObjectPtr</a> FunctionStartsWith::execute (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classXPathExecutionContext.html">XPathExecutionContext</a> &amp; <em>executionContext</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * <em>context</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="classXObjectPtr.html">XObjectPtr</a> <em>arg1</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="classXObjectPtr.html">XObjectPtr</a> <em>arg2</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="classFunction.html#s0">LocatorType</a> * <em>locator</em>&nbsp;) const<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Execute an <a class="el" href="classXPath.html">XPath</a> function object.
<p>
The function must return a valid object. Called if function has two parameters.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>executionContext</em>
&nbsp;</td><td>
executing context </td></tr>
<tr><td valign=top><em>context</em>
&nbsp;</td><td>
current context node </td></tr>
<tr><td valign=top><em>arg1</em>
&nbsp;</td><td>
pointer to <a class="el" href="classXObject.html">XObject</a> argument </td></tr>
<tr><td valign=top><em>arg2</em>
&nbsp;</td><td>
pointer to <a class="el" href="classXObject.html">XObject</a> argument </td></tr>
<tr><td valign=top><em>locator</em>
&nbsp;</td><td>
LocatorType instance for the <a class="el" href="classXPath.html">XPath</a> expression that contains the function call </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
pointer to the result <a class="el" href="classXObject.html">XObject</a> </dl>
<p>
Reimplemented from <a class="el" href="classFunction.html#a5">Function</a>.    </td>
  </tr>
</table>
<a name="b0" doxytag="FunctionStartsWith::getError"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; FunctionStartsWith::getError (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>theResult</em>&nbsp;) const<code> [protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the error message to report when the function is called with the wrong number of arguments.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
function error message </dl>
<p>
Reimplemented from <a class="el" href="classFunction.html#b0">Function</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="FunctionStartsWith_8hpp-source.html">FunctionStartsWith.hpp</a></ul>
<p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p>
<p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and 
<A href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</A> are used to generate this API documentation from the Xalan-C header files.</I></FONT></p>

<TABLE border="0" cellpadding="0" cellspacing="0" width="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="../resources/dot.gif" width="1" alt="dot"></TD></TR></TABLE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%">
	<TR>
		<TD WIDTH="80%" VALIGN="TOP">
			<P ALIGN="CENTER"><B>Xalan-C++ XSLT Processor Version 1.10</B><BR>
			Copyright &copy; 1999-2004 The Apache Software Foundation. All Rights Reserved.</i></p>
		</TD>
	</TR>
	<TR>
		<TD WIDTH="100%">
			<P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0" ALT="Apache Logo">
		</TD>
	</TR>
</TABLE>
