Sophie

Sophie

distrib > Mageia > 7 > aarch64 > by-pkgid > b3bdfe6d859a3d6920ff2c44b38e9a6f > files > 1842

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:09 GMT 2011 -->
<TITLE>
VariableReference
</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="VariableReference";
    }
}
</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/VariableDeclaration.html" title="interface in net.sf.saxon.expr"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../net/sf/saxon/expr/VennExpression.html" title="class in net.sf.saxon.expr"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?net/sf/saxon/expr/VariableReference.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="VariableReference.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</FONT>
<BR>
Class VariableReference</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/Expression.html" title="class in net.sf.saxon.expr">net.sf.saxon.expr.Expression</A>
      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>net.sf.saxon.expr.VariableReference</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/BindingReference.html" title="interface in net.sf.saxon.expr">BindingReference</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="../../../../net/sf/saxon/expr/LocalVariableReference.html" title="class in net.sf.saxon.expr">LocalVariableReference</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>VariableReference</B><DT>extends <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A><DT>implements <A HREF="../../../../net/sf/saxon/expr/BindingReference.html" title="interface in net.sf.saxon.expr">BindingReference</A></DL>
</PRE>

<P>
Variable reference: a reference to a variable. This may be an XSLT-defined variable, a range
 variable defined within the XPath expression, or a variable defined in some other static context.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#net.sf.saxon.expr.VariableReference">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;<A HREF="../../../../net/sf/saxon/expr/Binding.html" title="interface in net.sf.saxon.expr">Binding</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#binding">binding</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../net/sf/saxon/value/Value.html" title="class in net.sf.saxon.value">Value</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#constantValue">constantValue</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &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/VariableReference.html#staticType">staticType</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.Expression"><!-- --></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.<A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#EFFECTIVE_BOOLEAN_VALUE">EFFECTIVE_BOOLEAN_VALUE</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#EVALUATE_METHOD">EVALUATE_METHOD</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#EVENT_FEED_METHOD">EVENT_FEED_METHOD</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#ITEM_FEED_METHOD">ITEM_FEED_METHOD</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#ITERATE_METHOD">ITERATE_METHOD</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#locationId">locationId</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#MAX_SEQUENCE_LENGTH">MAX_SEQUENCE_LENGTH</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#MAX_STRING_LENGTH">MAX_STRING_LENGTH</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#PROCESS_METHOD">PROCESS_METHOD</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#PUSH_SELECTION">PUSH_SELECTION</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#staticProperties">staticProperties</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#UNBOUNDED_LOWER">UNBOUNDED_LOWER</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#UNBOUNDED_UPPER">UNBOUNDED_UPPER</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#WATCH_METHOD">WATCH_METHOD</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/VariableReference.html#VariableReference()">VariableReference</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Variable Reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#VariableReference(net.sf.saxon.expr.Binding)">VariableReference</A></B>(<A HREF="../../../../net/sf/saxon/expr/Binding.html" title="interface in net.sf.saxon.expr">Binding</A>&nbsp;binding)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a Variable Reference</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/expr/parser/PathMap.PathMapNodeSet.html" title="class in net.sf.saxon.expr.parser">PathMap.PathMapNodeSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#addToPathMap(net.sf.saxon.expr.parser.PathMap, net.sf.saxon.expr.parser.PathMap.PathMapNodeSet)">addToPathMap</A></B>(<A HREF="../../../../net/sf/saxon/expr/parser/PathMap.html" title="class in net.sf.saxon.expr.parser">PathMap</A>&nbsp;pathMap,
             <A HREF="../../../../net/sf/saxon/expr/parser/PathMap.PathMapNodeSet.html" title="class in net.sf.saxon.expr.parser">PathMap.PathMapNodeSet</A>&nbsp;pathMapNodeSet)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a representation of this expression to a PathMap.</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/VariableReference.html#computeCardinality()">computeCardinality</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the static cardinality</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/VariableReference.html#computeSpecialProperties()">computeSpecialProperties</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine the special properties of this 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/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#copy()">copy</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a clone copy of this VariableReference</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/VariableReference.html#equals(java.lang.Object)">equals</A></B>(<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>&nbsp;other)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test if this expression is the same as another 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/om/Item.html" title="interface in net.sf.saxon.om">Item</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#evaluateItem(net.sf.saxon.expr.XPathContext)">evaluateItem</A></B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluate an expression as a single item.</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>&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/expr/VariableReference.html#evaluateVariable(net.sf.saxon.expr.XPathContext)">evaluateVariable</A></B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluate this variable</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/VariableReference.html#explain(net.sf.saxon.trace.ExpressionPresenter)">explain</A></B>(<A HREF="../../../../net/sf/saxon/trace/ExpressionPresenter.html" title="class in net.sf.saxon.trace">ExpressionPresenter</A>&nbsp;destination)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Diagnostic print of expression structure.</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/VariableReference.html#fixup(net.sf.saxon.expr.Binding)">fixup</A></B>(<A HREF="../../../../net/sf/saxon/expr/Binding.html" title="interface in net.sf.saxon.expr">Binding</A>&nbsp;binding)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fix up this variable reference to a Binding object, which enables the value of the variable
 to be located at run-time.</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/Binding.html" title="interface in net.sf.saxon.expr">Binding</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#getBinding()">getBinding</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the object bound to the variable</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#getDisplayName()">getDisplayName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the display name of the variable.</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/VariableReference.html#getImplementationMethod()">getImplementationMethod</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().</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/IntegerValue.html" title="class in net.sf.saxon.value">IntegerValue</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#getIntegerBounds()">getIntegerBounds</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For an expression that returns an integer or a sequence of integers, get
 a lower and upper bound on the values of the integers that may be returned, from
 static analysis.</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/VariableReference.html#getIntrinsicDependencies()">getIntrinsicDependencies</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine the intrinsic dependencies of an expression, that is, those which are not derived
 from the dependencies of its subexpressions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../net/sf/saxon/type/ItemType.html" title="interface in net.sf.saxon.type">ItemType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#getItemType(net.sf.saxon.type.TypeHierarchy)">getItemType</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;Determine the data type of the expression, if possible</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/VariableReference.html#hashCode()">hashCode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get HashCode for comparing two expressions</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/VariableReference.html#isFiltered()">isFiltered</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine whether this variable reference is filtered</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/VariableReference.html#isFlattened()">isFlattened</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test whether this variable reference is flattened - that is, whether it is atomized etc</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/VariableReference.html#isInLoop()">isInLoop</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine whether this variable reference appears in a loop relative to its declaration.</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/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/expr/VariableReference.html#iterate(net.sf.saxon.expr.XPathContext)">iterate</A></B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the value of this variable in a given context.</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/expr/VariableReference.html#optimize(net.sf.saxon.expr.parser.ExpressionVisitor, net.sf.saxon.expr.parser.ExpressionVisitor.ContextItemType)">optimize</A></B>(<A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor</A>&nbsp;visitor,
         <A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.ContextItemType.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor.ContextItemType</A>&nbsp;contextItemType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type-check the expression.</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/VariableReference.html#process(net.sf.saxon.expr.XPathContext)">process</A></B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process the instruction, without returning any tail calls</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/expr/VariableReference.html#promote(net.sf.saxon.expr.parser.PromotionOffer, net.sf.saxon.expr.Expression)">promote</A></B>(<A HREF="../../../../net/sf/saxon/expr/parser/PromotionOffer.html" title="class in net.sf.saxon.expr.parser">PromotionOffer</A>&nbsp;offer,
        <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;parent)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Promote this expression if possible</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/VariableReference.html#refineVariableType(net.sf.saxon.type.ItemType, int, net.sf.saxon.value.Value, int, net.sf.saxon.expr.parser.ExpressionVisitor)">refineVariableType</A></B>(<A HREF="../../../../net/sf/saxon/type/ItemType.html" title="interface in net.sf.saxon.type">ItemType</A>&nbsp;type,
                   int&nbsp;cardinality,
                   <A HREF="../../../../net/sf/saxon/value/Value.html" title="class in net.sf.saxon.value">Value</A>&nbsp;constantValue,
                   int&nbsp;properties,
                   <A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor</A>&nbsp;visitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provide additional information about the type of the variable, typically derived by analyzing
 the initializer of the variable binding</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/VariableReference.html#setFiltered(boolean)">setFiltered</A></B>(boolean&nbsp;filtered)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark an expression as filtered: that is, it appears as the base expression in a filter expression.</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/VariableReference.html#setFlattened(boolean)">setFlattened</A></B>(boolean&nbsp;flattened)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark an expression as being "flattened".</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/VariableReference.html#setStaticType(net.sf.saxon.value.SequenceType, net.sf.saxon.value.Value, int)">setStaticType</A></B>(<A HREF="../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A>&nbsp;type,
              <A HREF="../../../../net/sf/saxon/value/Value.html" title="class in net.sf.saxon.value">Value</A>&nbsp;value,
              int&nbsp;properties)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set static type.</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../net/sf/saxon/expr/VariableReference.html#toString()">toString</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The toString() method for an expression attempts to give a representation of the expression
 in an XPath-like form, but there is no guarantee that the syntax will actually be true XPath.</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/expr/VariableReference.html#typeCheck(net.sf.saxon.expr.parser.ExpressionVisitor, net.sf.saxon.expr.parser.ExpressionVisitor.ContextItemType)">typeCheck</A></B>(<A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor</A>&nbsp;visitor,
          <A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.ContextItemType.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor.ContextItemType</A>&nbsp;contextItemType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type-check the expression.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_net.sf.saxon.expr.Expression"><!-- --></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.<A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#adoptChildExpression(net.sf.saxon.expr.Expression)">adoptChildExpression</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#checkForUpdatingSubexpressions()">checkForUpdatingSubexpressions</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#checkPermittedContents(net.sf.saxon.type.SchemaType, net.sf.saxon.expr.StaticContext, boolean)">checkPermittedContents</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#computeDependencies()">computeDependencies</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#computeStaticProperties()">computeStaticProperties</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#doPromotion(net.sf.saxon.expr.Expression, net.sf.saxon.expr.parser.PromotionOffer)">doPromotion</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#dynamicError(java.lang.String, java.lang.String, net.sf.saxon.expr.XPathContext)">dynamicError</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#effectiveBooleanValue(net.sf.saxon.expr.XPathContext)">effectiveBooleanValue</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#evaluateAsString(net.sf.saxon.expr.XPathContext)">evaluateAsString</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#evaluatePendingUpdates(net.sf.saxon.expr.XPathContext, net.sf.saxon.expr.PendingUpdateList)">evaluatePendingUpdates</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#explain(java.io.OutputStream)">explain</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getCardinality()">getCardinality</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getColumnNumber()">getColumnNumber</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getColumnNumber(long)">getColumnNumber</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getConstructType()">getConstructType</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getContainer()">getContainer</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getDependencies()">getDependencies</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getEvaluationMethod()">getEvaluationMethod</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getExecutable()">getExecutable</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getExpressionName()">getExpressionName</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getHostLanguage()">getHostLanguage</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getLineNumber()">getLineNumber</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getLineNumber(long)">getLineNumber</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getLocationId()">getLocationId</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getLocationProvider()">getLocationProvider</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getObjectName()">getObjectName</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getProperties()">getProperties</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getProperty(java.lang.String)">getProperty</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getPublicId()">getPublicId</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getSlotsUsed()">getSlotsUsed</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getSpecialProperties()">getSpecialProperties</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getSystemId()">getSystemId</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#getSystemId(long)">getSystemId</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#hasLoopingSubexpression(net.sf.saxon.expr.Expression)">hasLoopingSubexpression</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#hasVariableBinding(net.sf.saxon.expr.Binding)">hasVariableBinding</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#implementsStaticTypeCheck()">implementsStaticTypeCheck</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#isSubtreeExpression()">isSubtreeExpression</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#isUpdatingExpression()">isUpdatingExpression</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#isVacuousExpression()">isVacuousExpression</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#iterateEvents(net.sf.saxon.expr.XPathContext)">iterateEvents</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#iterateSameFocusSubExpressions()">iterateSameFocusSubExpressions</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#iterateSubExpressions()">iterateSubExpressions</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#markTailFunctionCalls(net.sf.saxon.om.StructuredQName, int)">markTailFunctionCalls</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#replaceSubExpression(net.sf.saxon.expr.Expression, net.sf.saxon.expr.Expression)">replaceSubExpression</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#resetLocalStaticProperties()">resetLocalStaticProperties</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#setContainer(net.sf.saxon.expr.Container)">setContainer</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#setEvaluationMethod(int)">setEvaluationMethod</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#setLocationId(int)">setLocationId</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#simplify(net.sf.saxon.expr.parser.ExpressionVisitor)">simplify</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#staticTypeCheck(net.sf.saxon.value.SequenceType, boolean, net.sf.saxon.expr.parser.RoleLocator, net.sf.saxon.TypeCheckerEnvironment)">staticTypeCheck</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#suppressValidation(int)">suppressValidation</A>, <A HREF="../../../../net/sf/saxon/expr/Expression.html#typeError(java.lang.String, java.lang.String, net.sf.saxon.expr.XPathContext)">typeError</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#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#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#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="binding"><!-- --></A><H3>
binding</H3>
<PRE>
protected <A HREF="../../../../net/sf/saxon/expr/Binding.html" title="interface in net.sf.saxon.expr">Binding</A> <B>binding</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="staticType"><!-- --></A><H3>
staticType</H3>
<PRE>
protected <A HREF="../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A> <B>staticType</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="constantValue"><!-- --></A><H3>
constantValue</H3>
<PRE>
protected <A HREF="../../../../net/sf/saxon/value/Value.html" title="class in net.sf.saxon.value">Value</A> <B>constantValue</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="VariableReference()"><!-- --></A><H3>
VariableReference</H3>
<PRE>
public <B>VariableReference</B>()</PRE>
<DL>
<DD>Create a Variable Reference
<P>
</DL>
<HR>

<A NAME="VariableReference(net.sf.saxon.expr.Binding)"><!-- --></A><H3>
VariableReference</H3>
<PRE>
public <B>VariableReference</B>(<A HREF="../../../../net/sf/saxon/expr/Binding.html" title="interface in net.sf.saxon.expr">Binding</A>&nbsp;binding)</PRE>
<DL>
<DD>Create a Variable Reference
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>binding</CODE> - the variable binding to which this variable refers</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="copy()"><!-- --></A><H3>
copy</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A> <B>copy</B>()</PRE>
<DL>
<DD>Create a clone copy of this VariableReference
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#copy()">copy</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the cloned copy</DL>
</DD>
</DL>
<HR>

<A NAME="setStaticType(net.sf.saxon.value.SequenceType, net.sf.saxon.value.Value, int)"><!-- --></A><H3>
setStaticType</H3>
<PRE>
public void <B>setStaticType</B>(<A HREF="../../../../net/sf/saxon/value/SequenceType.html" title="class in net.sf.saxon.value">SequenceType</A>&nbsp;type,
                          <A HREF="../../../../net/sf/saxon/value/Value.html" title="class in net.sf.saxon.value">Value</A>&nbsp;value,
                          int&nbsp;properties)</PRE>
<DL>
<DD>Set static type. This is a callback from the variable declaration object. As well
 as supplying the static type, it may also supply a compile-time value for the variable.
 As well as the type information, other static properties of the value are supplied:
 for example, whether the value is an ordered node-set.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/BindingReference.html#setStaticType(net.sf.saxon.value.SequenceType, net.sf.saxon.value.Value, int)">setStaticType</A></CODE> in interface <CODE><A HREF="../../../../net/sf/saxon/expr/BindingReference.html" title="interface in net.sf.saxon.expr">BindingReference</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - the static type of the variable<DD><CODE>value</CODE> - the value of the variable if this is a compile-time constant, or null otherwise<DD><CODE>properties</CODE> - static properties of the expression to which the variable is bound</DL>
</DD>
</DL>
<HR>

<A NAME="setFlattened(boolean)"><!-- --></A><H3>
setFlattened</H3>
<PRE>
public void <B>setFlattened</B>(boolean&nbsp;flattened)</PRE>
<DL>
<DD>Mark an expression as being "flattened". This is a collective term that includes extracting the
 string value or typed value, or operations such as simple value construction that concatenate text
 nodes before atomizing. The implication of all of these is that although the expression might
 return nodes, the identity of the nodes has no significance. This is called during type checking
 of the parent expression. At present, only variable references take any notice of this notification.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#setFlattened(boolean)">setFlattened</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>flattened</CODE> - set to true if the result of the expression is atomized or otherwise turned into
 an atomic value</DL>
</DD>
</DL>
<HR>

<A NAME="isFlattened()"><!-- --></A><H3>
isFlattened</H3>
<PRE>
public boolean <B>isFlattened</B>()</PRE>
<DL>
<DD>Test whether this variable reference is flattened - that is, whether it is atomized etc
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the value of the variable is atomized, or converted to a string or number</DL>
</DD>
</DL>
<HR>

<A NAME="setFiltered(boolean)"><!-- --></A><H3>
setFiltered</H3>
<PRE>
public void <B>setFiltered</B>(boolean&nbsp;filtered)</PRE>
<DL>
<DD>Mark an expression as filtered: that is, it appears as the base expression in a filter expression.
 This notification currently has no effect except when the expression is a variable reference.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#setFiltered(boolean)">setFiltered</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>filtered</CODE> - if true, marks this expression as the base of a filter expression</DL>
</DD>
</DL>
<HR>

<A NAME="isFiltered()"><!-- --></A><H3>
isFiltered</H3>
<PRE>
public boolean <B>isFiltered</B>()</PRE>
<DL>
<DD>Determine whether this variable reference is filtered
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the value of the variable is filtered by a predicate</DL>
</DD>
</DL>
<HR>

<A NAME="isInLoop()"><!-- --></A><H3>
isInLoop</H3>
<PRE>
public boolean <B>isInLoop</B>()</PRE>
<DL>
<DD>Determine whether this variable reference appears in a loop relative to its declaration.
 By default, when in doubt, returns true. This is calculated during type-checking.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this variable reference occurs in a loop, where the variable declaration is
 outside the loop</DL>
</DD>
</DL>
<HR>

<A NAME="typeCheck(net.sf.saxon.expr.parser.ExpressionVisitor, net.sf.saxon.expr.parser.ExpressionVisitor.ContextItemType)"><!-- --></A><H3>
typeCheck</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A> <B>typeCheck</B>(<A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor</A>&nbsp;visitor,
                            <A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.ContextItemType.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor.ContextItemType</A>&nbsp;contextItemType)
                     throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Type-check the expression. At this stage details of the static type must be known.
 If the variable has a compile-time value, this is substituted for the variable reference
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#typeCheck(net.sf.saxon.expr.parser.ExpressionVisitor, net.sf.saxon.expr.parser.ExpressionVisitor.ContextItemType)">typeCheck</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>visitor</CODE> - an expression visitor<DD><CODE>contextItemType</CODE> - the static type of "." at the point where this expression is invoked.
 The parameter is set to null if it is known statically that the context item will be undefined.
 If the type of the context item is not known statically, the argument is set to
 <A HREF="../../../../net/sf/saxon/type/Type.html#ITEM_TYPE"><CODE>Type.ITEM_TYPE</CODE></A>
<DT><B>Returns:</B><DD>the original expression, rewritten to perform necessary run-time type checks,
 and to perform other type-related optimizations
<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 an error is discovered during this phase
     (typically a type error)</DL>
</DD>
</DL>
<HR>

<A NAME="optimize(net.sf.saxon.expr.parser.ExpressionVisitor, net.sf.saxon.expr.parser.ExpressionVisitor.ContextItemType)"><!-- --></A><H3>
optimize</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A> <B>optimize</B>(<A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor</A>&nbsp;visitor,
                           <A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.ContextItemType.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor.ContextItemType</A>&nbsp;contextItemType)
                    throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Type-check the expression. At this stage details of the static type must be known.
 If the variable has a compile-time value, this is substituted for the variable reference
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#optimize(net.sf.saxon.expr.parser.ExpressionVisitor, net.sf.saxon.expr.parser.ExpressionVisitor.ContextItemType)">optimize</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>visitor</CODE> - an expression visitor<DD><CODE>contextItemType</CODE> - the static type of "." at the point where this expression is invoked.
 The parameter is set to null if it is known statically that the context item will be undefined.
 If the type of the context item is not known statically, the argument is set to
 <A HREF="../../../../net/sf/saxon/type/Type.html#ITEM_TYPE"><CODE>Type.ITEM_TYPE</CODE></A>
<DT><B>Returns:</B><DD>the original expression, rewritten if appropriate to optimize execution
<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 an error is discovered during this phase
     (typically a type error)</DL>
</DD>
</DL>
<HR>

<A NAME="fixup(net.sf.saxon.expr.Binding)"><!-- --></A><H3>
fixup</H3>
<PRE>
public void <B>fixup</B>(<A HREF="../../../../net/sf/saxon/expr/Binding.html" title="interface in net.sf.saxon.expr">Binding</A>&nbsp;binding)</PRE>
<DL>
<DD>Fix up this variable reference to a Binding object, which enables the value of the variable
 to be located at run-time.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/BindingReference.html#fixup(net.sf.saxon.expr.Binding)">fixup</A></CODE> in interface <CODE><A HREF="../../../../net/sf/saxon/expr/BindingReference.html" title="interface in net.sf.saxon.expr">BindingReference</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>binding</CODE> - the Binding to which the variable refers</DL>
</DD>
</DL>
<HR>

<A NAME="refineVariableType(net.sf.saxon.type.ItemType, int, net.sf.saxon.value.Value, int, net.sf.saxon.expr.parser.ExpressionVisitor)"><!-- --></A><H3>
refineVariableType</H3>
<PRE>
public void <B>refineVariableType</B>(<A HREF="../../../../net/sf/saxon/type/ItemType.html" title="interface in net.sf.saxon.type">ItemType</A>&nbsp;type,
                               int&nbsp;cardinality,
                               <A HREF="../../../../net/sf/saxon/value/Value.html" title="class in net.sf.saxon.value">Value</A>&nbsp;constantValue,
                               int&nbsp;properties,
                               <A HREF="../../../../net/sf/saxon/expr/parser/ExpressionVisitor.html" title="class in net.sf.saxon.expr.parser">ExpressionVisitor</A>&nbsp;visitor)</PRE>
<DL>
<DD>Provide additional information about the type of the variable, typically derived by analyzing
 the initializer of the variable binding
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - the item type of the variable<DD><CODE>cardinality</CODE> - the cardinality of the variable<DD><CODE>constantValue</CODE> - the actual value of the variable, if this is known statically, otherwise null<DD><CODE>properties</CODE> - additional static properties of the variable's initializer<DD><CODE>visitor</CODE> - an ExpressionVisitor</DL>
</DD>
</DL>
<HR>

<A NAME="getItemType(net.sf.saxon.type.TypeHierarchy)"><!-- --></A><H3>
getItemType</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/type/ItemType.html" title="interface in net.sf.saxon.type">ItemType</A> <B>getItemType</B>(<A HREF="../../../../net/sf/saxon/type/TypeHierarchy.html" title="class in net.sf.saxon.type">TypeHierarchy</A>&nbsp;th)</PRE>
<DL>
<DD>Determine the data type of the expression, if possible
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#getItemType(net.sf.saxon.type.TypeHierarchy)">getItemType</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>th</CODE> - the type hierarchy cache
<DT><B>Returns:</B><DD>the type of the variable, if this can be determined statically;
         otherwise Type.ITEM (meaning not known in advance)</DL>
</DD>
</DL>
<HR>

<A NAME="getIntegerBounds()"><!-- --></A><H3>
getIntegerBounds</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/value/IntegerValue.html" title="class in net.sf.saxon.value">IntegerValue</A>[] <B>getIntegerBounds</B>()</PRE>
<DL>
<DD>For an expression that returns an integer or a sequence of integers, get
 a lower and upper bound on the values of the integers that may be returned, from
 static analysis. The default implementation returns null, meaning "unknown" or
 "not applicable". Other implementations return an array of two IntegerValue objects,
 representing the lower and upper bounds respectively. The values
 UNBOUNDED_LOWER and UNBOUNDED_UPPER are used by convention to indicate that
 the value may be arbitrarily large. The values MAX_STRING_LENGTH and MAX_SEQUENCE_LENGTH
 are used to indicate values limited by the size of a string or the size of a sequence.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#getIntegerBounds()">getIntegerBounds</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the lower and upper bounds of integer values in the result, or null to indicate
         unknown or not applicable.</DL>
</DD>
</DL>
<HR>

<A NAME="computeCardinality()"><!-- --></A><H3>
computeCardinality</H3>
<PRE>
public int <B>computeCardinality</B>()</PRE>
<DL>
<DD>Get the static cardinality
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#computeCardinality()">computeCardinality</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the computed cardinality, as one of the values <A HREF="../../../../net/sf/saxon/expr/StaticProperty.html#ALLOWS_ZERO_OR_ONE"><CODE>StaticProperty.ALLOWS_ZERO_OR_ONE</CODE></A>,
 <A HREF="../../../../net/sf/saxon/expr/StaticProperty.html#EXACTLY_ONE"><CODE>StaticProperty.EXACTLY_ONE</CODE></A>, <A HREF="../../../../net/sf/saxon/expr/StaticProperty.html#ALLOWS_ONE_OR_MORE"><CODE>StaticProperty.ALLOWS_ONE_OR_MORE</CODE></A>,
 <A HREF="../../../../net/sf/saxon/expr/StaticProperty.html#ALLOWS_ZERO_OR_MORE"><CODE>StaticProperty.ALLOWS_ZERO_OR_MORE</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="computeSpecialProperties()"><!-- --></A><H3>
computeSpecialProperties</H3>
<PRE>
public int <B>computeSpecialProperties</B>()</PRE>
<DL>
<DD>Determine the special properties of this expression
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#computeSpecialProperties()">computeSpecialProperties</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD><A HREF="../../../../net/sf/saxon/expr/StaticProperty.html#NON_CREATIVE"><CODE>StaticProperty.NON_CREATIVE</CODE></A> (unless the variable is assignable using saxon:assign)</DL>
</DD>
</DL>
<HR>

<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(<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>&nbsp;other)</PRE>
<DL>
<DD>Test if this expression is the same as another expression.
 (Note, we only compare expressions that
 have the same static and dynamic context).
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><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></CODE> in class <CODE><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></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public int <B>hashCode</B>()</PRE>
<DL>
<DD>get HashCode for comparing two expressions
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><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></CODE> in class <CODE><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></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getIntrinsicDependencies()"><!-- --></A><H3>
getIntrinsicDependencies</H3>
<PRE>
public int <B>getIntrinsicDependencies</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#getIntrinsicDependencies()">Expression</A></CODE></B></DD>
<DD>Determine the intrinsic dependencies of an expression, that is, those which are not derived
 from the dependencies of its subexpressions. For example, position() has an intrinsic dependency
 on the context position, while (position()+1) does not. The default implementation
 of the method returns 0, indicating "no dependencies".
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#getIntrinsicDependencies()">getIntrinsicDependencies</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a set of bit-significant flags identifying the "intrinsic"
     dependencies. The flags are documented in class net.sf.saxon.value.StaticProperty</DL>
</DD>
</DL>
<HR>

<A NAME="promote(net.sf.saxon.expr.parser.PromotionOffer, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
promote</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A> <B>promote</B>(<A HREF="../../../../net/sf/saxon/expr/parser/PromotionOffer.html" title="class in net.sf.saxon.expr.parser">PromotionOffer</A>&nbsp;offer,
                          <A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;parent)
                   throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Promote this expression if possible
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#promote(net.sf.saxon.expr.parser.PromotionOffer, net.sf.saxon.expr.Expression)">promote</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>offer</CODE> - details of the offer, for example the offer to move
     expressions that don't depend on the context to an outer level in
     the containing expression<DD><CODE>parent</CODE> - the containing expression in the expression tree
<DT><B>Returns:</B><DD>if the offer is not accepted, return this expression unchanged.
      Otherwise return the result of rewriting the expression to promote
      this subexpression
<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 any error is detected</DL>
</DD>
</DL>
<HR>

<A NAME="getImplementationMethod()"><!-- --></A><H3>
getImplementationMethod</H3>
<PRE>
public int <B>getImplementationMethod</B>()</PRE>
<DL>
<DD>An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
 This method indicates which of these methods is provided. This implementation provides both all three methods
 natively.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#getImplementationMethod()">getImplementationMethod</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the implementation method, for example <A HREF="../../../../net/sf/saxon/expr/Expression.html#ITERATE_METHOD"><CODE>Expression.ITERATE_METHOD</CODE></A> or <A HREF="../../../../net/sf/saxon/expr/Expression.html#EVALUATE_METHOD"><CODE>Expression.EVALUATE_METHOD</CODE></A> or
 <A HREF="../../../../net/sf/saxon/expr/Expression.html#PROCESS_METHOD"><CODE>Expression.PROCESS_METHOD</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="addToPathMap(net.sf.saxon.expr.parser.PathMap, net.sf.saxon.expr.parser.PathMap.PathMapNodeSet)"><!-- --></A><H3>
addToPathMap</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/expr/parser/PathMap.PathMapNodeSet.html" title="class in net.sf.saxon.expr.parser">PathMap.PathMapNodeSet</A> <B>addToPathMap</B>(<A HREF="../../../../net/sf/saxon/expr/parser/PathMap.html" title="class in net.sf.saxon.expr.parser">PathMap</A>&nbsp;pathMap,
                                           <A HREF="../../../../net/sf/saxon/expr/parser/PathMap.PathMapNodeSet.html" title="class in net.sf.saxon.expr.parser">PathMap.PathMapNodeSet</A>&nbsp;pathMapNodeSet)</PRE>
<DL>
<DD>Add a representation of this expression to a PathMap. The PathMap captures a map of the nodes visited
 by an expression in a source tree.
 <p/>
 <p>The default implementation of this method assumes that an expression does no navigation other than
 the navigation done by evaluating its subexpressions, and that the subexpressions are evaluated in the
 same context as the containing expression. The method must be overridden for any expression
 where these assumptions do not hold. For example, implementations exist for AxisExpression, ParentExpression,
 and RootExpression (because they perform navigation), and for the doc(), document(), and collection()
 functions because they create a new navigation root. Implementations also exist for PathExpression and
 FilterExpression because they have subexpressions that are evaluated in a different context from the
 calling expression.</p>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#addToPathMap(net.sf.saxon.expr.parser.PathMap, net.sf.saxon.expr.parser.PathMap.PathMapNodeSet)">addToPathMap</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>pathMap</CODE> - the PathMap to which the expression should be added<DD><CODE>pathMapNodeSet</CODE> - the PathMapNodeSet to which the paths embodied in this expression should be added
<DT><B>Returns:</B><DD>the pathMapNodeSet representing the points in the source document that are both reachable by this
         expression, and that represent possible results of this expression. For an expression that does
         navigation, it represents the end of the arc in the path map that describes the navigation route. For other
         expressions, it is the same as the input pathMapNode.</DL>
</DD>
</DL>
<HR>

<A NAME="iterate(net.sf.saxon.expr.XPathContext)"><!-- --></A><H3>
iterate</H3>
<PRE>
public <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>iterate</B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)
                                         throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Get the value of this variable in a given context.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#iterate(net.sf.saxon.expr.XPathContext)">iterate</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - the XPathContext which contains the relevant variable bindings
<DT><B>Returns:</B><DD>the value of the variable, if it is defined
<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 variable is undefined</DL>
</DD>
</DL>
<HR>

<A NAME="evaluateItem(net.sf.saxon.expr.XPathContext)"><!-- --></A><H3>
evaluateItem</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A> <B>evaluateItem</B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)
                  throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#evaluateItem(net.sf.saxon.expr.XPathContext)">Expression</A></CODE></B></DD>
<DD>Evaluate an expression as a single item. This always returns either a single Item or
 null (denoting the empty sequence). No conversion is done. This method should not be
 used unless the static type of the expression is a subtype of "item" or "item?": that is,
 it should not be called if the expression may return a sequence. There is no guarantee that
 this condition will be detected.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#evaluateItem(net.sf.saxon.expr.XPathContext)">evaluateItem</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - The context in which the expression is to be evaluated
<DT><B>Returns:</B><DD>the node or atomic value that results from evaluating the
     expression; or null to indicate that the result is an empty
     sequence
<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 any dynamic error occurs evaluating the
     expression</DL>
</DD>
</DL>
<HR>

<A NAME="process(net.sf.saxon.expr.XPathContext)"><!-- --></A><H3>
process</H3>
<PRE>
public void <B>process</B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)
             throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#process(net.sf.saxon.expr.XPathContext)">Expression</A></CODE></B></DD>
<DD>Process the instruction, without returning any tail calls
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#process(net.sf.saxon.expr.XPathContext)">process</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - The dynamic context, giving access to the current node,
 the current variables, etc.
<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</DL>
</DD>
</DL>
<HR>

<A NAME="evaluateVariable(net.sf.saxon.expr.XPathContext)"><!-- --></A><H3>
evaluateVariable</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/om/ValueRepresentation.html" title="interface in net.sf.saxon.om">ValueRepresentation</A>&lt;? extends <A HREF="../../../../net/sf/saxon/om/Item.html" title="interface in net.sf.saxon.om">Item</A>&gt; <B>evaluateVariable</B>(<A HREF="../../../../net/sf/saxon/expr/XPathContext.html" title="interface in net.sf.saxon.expr">XPathContext</A>&nbsp;c)
                                                     throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Evaluate this variable
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - the XPath dynamic context
<DT><B>Returns:</B><DD>the value of the variable
<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 any error occurs</DL>
</DD>
</DL>
<HR>

<A NAME="getBinding()"><!-- --></A><H3>
getBinding</H3>
<PRE>
public <A HREF="../../../../net/sf/saxon/expr/Binding.html" title="interface in net.sf.saxon.expr">Binding</A> <B>getBinding</B>()</PRE>
<DL>
<DD>Get the object bound to the variable
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the Binding which declares this variable and associates it with a value</DL>
</DD>
</DL>
<HR>

<A NAME="getDisplayName()"><!-- --></A><H3>
getDisplayName</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDisplayName</B>()</PRE>
<DL>
<DD>Get the display name of the variable. This is taken from the variable binding if possible
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the display name (a lexical QName</DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
<DL>
<DD>The toString() method for an expression attempts to give a representation of the expression
 in an XPath-like form, but there is no guarantee that the syntax will actually be true XPath.
 In the case of XSLT instructions, the toString() method gives an abstracted view of the syntax
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#toString()">toString</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a representation of the expression as a string</DL>
</DD>
</DL>
<HR>

<A NAME="explain(net.sf.saxon.trace.ExpressionPresenter)"><!-- --></A><H3>
explain</H3>
<PRE>
public void <B>explain</B>(<A HREF="../../../../net/sf/saxon/trace/ExpressionPresenter.html" title="class in net.sf.saxon.trace">ExpressionPresenter</A>&nbsp;destination)</PRE>
<DL>
<DD>Diagnostic print of expression structure. The abstract expression tree
 is written to the supplied output destination.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html#explain(net.sf.saxon.trace.ExpressionPresenter)">explain</A></CODE> in class <CODE><A HREF="../../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>destination</CODE> - the expression presenter used to display the structure</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/VariableDeclaration.html" title="interface in net.sf.saxon.expr"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../net/sf/saxon/expr/VennExpression.html" title="class in net.sf.saxon.expr"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?net/sf/saxon/expr/VariableReference.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="VariableReference.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>