<!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.5.0_18) on Sun Apr 01 21:18:17 PDT 2012 -->
<TITLE>
KeyTable
</TITLE>

<META NAME="keywords" CONTENT="org.apache.xalan.transformer.KeyTable class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="KeyTable";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= 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="class-use/KeyTable.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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="../../../../org/apache/xalan/transformer/KeyRefIterator.html" title="class in org.apache.xalan.transformer"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xalan/transformer/MsgMgr.html" title="class in org.apache.xalan.transformer"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/xalan/transformer/KeyTable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="KeyTable.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">
org.apache.xalan.transformer</FONT>
<BR>
Class KeyTable</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.xalan.transformer.KeyTable</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.45"><B>KeyTable</B></A><DT>extends java.lang.Object</DL>
</PRE>

<P>
Table of element keys, keyed by document node.  An instance of this
 class is keyed by a Document node that should be matched with the
 root of the current context.
<P>

<P>
<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>private &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#m_docKey">m_docKey</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The document key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#m_keyDeclarations">m_keyDeclarations</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector of KeyDeclaration instances holding the key declarations.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/apache/xpath/objects/XNodeSet.html" title="class in org.apache.xpath.objects">XNodeSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#m_keyNodes">m_keyNodes</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The main iterator that will walk through the source  
 tree for this key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.util.Hashtable</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#m_refsTable">m_refsTable</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hold a cache of key() function result for each ref.</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="../../../../org/apache/xalan/transformer/KeyTable.html#KeyTable(int, org.apache.xml.utils.PrefixResolver, org.apache.xml.utils.QName, java.util.Vector, org.apache.xpath.XPathContext)">KeyTable</A></B>(int&nbsp;doc,
                 <A HREF="../../../../org/apache/xml/utils/PrefixResolver.html" title="interface in org.apache.xml.utils">PrefixResolver</A>&nbsp;nscontext,
                 <A HREF="../../../../org/apache/xml/utils/QName.html" title="class in org.apache.xml.utils">QName</A>&nbsp;name,
                 java.util.Vector&nbsp;keyDeclarations,
                 <A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;xctxt)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build a keys table.</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>private &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#addValueInRefsTable(org.apache.xpath.XPathContext, org.apache.xml.utils.XMLString, int)">addValueInRefsTable</A></B>(<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;xctxt,
                                       <A HREF="../../../../org/apache/xml/utils/XMLString.html" title="interface in org.apache.xml.utils">XMLString</A>&nbsp;ref,
                                       int&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add an association between a ref and a node in the m_refsTable.</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="../../../../org/apache/xalan/transformer/KeyTable.html#getDocKey()">getDocKey</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the document root matching this key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#getKeyDeclarations()">getKeyDeclarations</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>(package private) &nbsp;<A HREF="../../../../org/apache/xalan/transformer/KeyIterator.html" title="class in org.apache.xalan.transformer">KeyIterator</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#getKeyIterator()">getKeyIterator</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>&nbsp;<A HREF="../../../../org/apache/xml/utils/QName.html" title="class in org.apache.xml.utils">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#getKeyTableName()">getKeyTableName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get Key Name for this KeyTable</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/xpath/objects/XNodeSet.html" title="class in org.apache.xpath.objects">XNodeSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#getNodeSetDTMByKey(org.apache.xml.utils.QName, org.apache.xml.utils.XMLString)">getNodeSetDTMByKey</A></B>(<A HREF="../../../../org/apache/xml/utils/QName.html" title="class in org.apache.xml.utils">QName</A>&nbsp;name,
                                     <A HREF="../../../../org/apache/xml/utils/XMLString.html" title="interface in org.apache.xml.utils">XMLString</A>&nbsp;ref)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given a valid element key, return the corresponding node list.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.util.Hashtable</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/KeyTable.html#getRefsTable()">getRefsTable</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</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="m_docKey"><!-- --></A><H3>
m_docKey</H3>
<PRE>
private int <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.51"><B>m_docKey</B></A></PRE>
<DL>
<DD>The document key.  This table should only be used with contexts
 whose Document roots match this key.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="m_keyDeclarations"><!-- --></A><H3>
m_keyDeclarations</H3>
<PRE>
private java.util.Vector <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.56"><B>m_keyDeclarations</B></A></PRE>
<DL>
<DD>Vector of KeyDeclaration instances holding the key declarations.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="m_refsTable"><!-- --></A><H3>
m_refsTable</H3>
<PRE>
private java.util.Hashtable <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.63"><B>m_refsTable</B></A></PRE>
<DL>
<DD>Hold a cache of key() function result for each ref.
 Key is XMLString, the ref value
 Value is XNodeSet, the key() function result for the given ref value.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="m_keyNodes"><!-- --></A><H3>
m_keyNodes</H3>
<PRE>
private <A HREF="../../../../org/apache/xpath/objects/XNodeSet.html" title="class in org.apache.xpath.objects">XNodeSet</A> <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.79"><B>m_keyNodes</B></A></PRE>
<DL>
<DD>The main iterator that will walk through the source  
 tree for this key.
<P>
<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="KeyTable(int, org.apache.xml.utils.PrefixResolver, org.apache.xml.utils.QName, java.util.Vector, org.apache.xpath.XPathContext)"><!-- --></A><H3>
KeyTable</H3>
<PRE>
public <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.95"><B>KeyTable</B></A>(int&nbsp;doc,
                <A HREF="../../../../org/apache/xml/utils/PrefixResolver.html" title="interface in org.apache.xml.utils">PrefixResolver</A>&nbsp;nscontext,
                <A HREF="../../../../org/apache/xml/utils/QName.html" title="class in org.apache.xml.utils">QName</A>&nbsp;name,
                java.util.Vector&nbsp;keyDeclarations,
                <A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;xctxt)
         throws javax.xml.transform.TransformerException</PRE>
<DL>
<DD>Build a keys table.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>doc</CODE> - The owner document key.<DD><CODE>nscontext</CODE> - The stylesheet's namespace context.<DD><CODE>name</CODE> - The key name<DD><CODE>keyDeclarations</CODE> - The stylesheet's xsl:key declarations.
<DT><B>Throws:</B>
<DD><CODE>javax.xml.transform.TransformerException</CODE></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="getDocKey()"><!-- --></A><H3>
getDocKey</H3>
<PRE>
public int <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.70"><B>getDocKey</B></A>()</PRE>
<DL>
<DD>Get the document root matching this key.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the document root matching this key</DL>
</DD>
</DL>
<HR>

<A NAME="getKeyIterator()"><!-- --></A><H3>
getKeyIterator</H3>
<PRE>
<A HREF="../../../../org/apache/xalan/transformer/KeyIterator.html" title="class in org.apache.xalan.transformer">KeyIterator</A> <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.81"><B>getKeyIterator</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getNodeSetDTMByKey(org.apache.xml.utils.QName, org.apache.xml.utils.XMLString)"><!-- --></A><H3>
getNodeSetDTMByKey</H3>
<PRE>
public <A HREF="../../../../org/apache/xpath/objects/XNodeSet.html" title="class in org.apache.xpath.objects">XNodeSet</A> <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.115"><B>getNodeSetDTMByKey</B></A>(<A HREF="../../../../org/apache/xml/utils/QName.html" title="class in org.apache.xml.utils">QName</A>&nbsp;name,
                                   <A HREF="../../../../org/apache/xml/utils/XMLString.html" title="interface in org.apache.xml.utils">XMLString</A>&nbsp;ref)</PRE>
<DL>
<DD>Given a valid element key, return the corresponding node list.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the key, which must match the 'name' attribute on xsl:key.<DD><CODE>ref</CODE> - The value that must match the value found by the 'match' attribute on xsl:key.
<DT><B>Returns:</B><DD>a set of nodes referenced by the key named <CODE>name</CODE> and the reference <CODE>ref</CODE>. If no node is referenced by this key, an empty node set is returned.</DL>
</DD>
</DL>
<HR>

<A NAME="getKeyTableName()"><!-- --></A><H3>
getKeyTableName</H3>
<PRE>
public <A HREF="../../../../org/apache/xml/utils/QName.html" title="class in org.apache.xml.utils">QName</A> <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.152"><B>getKeyTableName</B></A>()</PRE>
<DL>
<DD>Get Key Name for this KeyTable
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Key name</DL>
</DD>
</DL>
<HR>

<A NAME="getKeyDeclarations()"><!-- --></A><H3>
getKeyDeclarations</H3>
<PRE>
private java.util.Vector <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.160"><B>getKeyDeclarations</B></A>()</PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD>key declarations for the key associated to this KeyTable</DL>
</DD>
</DL>
<HR>

<A NAME="getRefsTable()"><!-- --></A><H3>
getRefsTable</H3>
<PRE>
private java.util.Hashtable <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.183"><B>getRefsTable</B></A>()</PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD>lazy initialized refs table associating evaluation of key function
         with a XNodeSet</DL>
</DD>
</DL>
<HR>

<A NAME="addValueInRefsTable(org.apache.xpath.XPathContext, org.apache.xml.utils.XMLString, int)"><!-- --></A><H3>
addValueInRefsTable</H3>
<PRE>
private void <A HREF="../../../../src-html/org/apache/xalan/transformer/KeyTable.html#line.239"><B>addValueInRefsTable</B></A>(<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;xctxt,
                                 <A HREF="../../../../org/apache/xml/utils/XMLString.html" title="interface in org.apache.xml.utils">XMLString</A>&nbsp;ref,
                                 int&nbsp;node)</PRE>
<DL>
<DD>Add an association between a ref and a node in the m_refsTable.
 Requires that m_refsTable != null
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>xctxt</CODE> - XPath context<DD><CODE>ref</CODE> - the value of the use clause of the current key for the given node<DD><CODE>node</CODE> - the node to reference</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="class-use/KeyTable.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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="../../../../org/apache/xalan/transformer/KeyRefIterator.html" title="class in org.apache.xalan.transformer"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xalan/transformer/MsgMgr.html" title="class in org.apache.xalan.transformer"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/xalan/transformer/KeyTable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="KeyTable.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>

</BODY>
</HTML>
