blob: 0f2bf67201c23c7c21f4e497e958984ceb14a7d5 [file] [log] [blame]
<!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>
NodeSorter
</TITLE>
<META NAME="keywords" CONTENT="org.apache.xalan.transformer.NodeSorter class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="NodeSorter";
}
</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/NodeSorter.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/MsgMgr.html" title="class in org.apache.xalan.transformer"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xalan/transformer/NodeSorter.NodeCompareElem.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/NodeSorter.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="NodeSorter.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;<A HREF="#nested_class_summary">NESTED</A>&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 NodeSorter</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.xalan.transformer.NodeSorter</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <A HREF="../../../../src-html/org/apache/xalan/transformer/NodeSorter.html#line.38"><B>NodeSorter</B></A><DT>extends java.lang.Object</DL>
</PRE>
<P>
This class can sort vectors of DOM nodes according to a select pattern.
<P>
<P>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_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>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/NodeSorter.NodeCompareElem.html" title="class in org.apache.xalan.transformer">NodeSorter.NodeCompareElem</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class holds the value(s) from executing the given
node against the sort key(s).</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== 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>(package private) &nbsp;<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/NodeSorter.html#m_execContext">m_execContext</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Current XPath context</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) &nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/NodeSorter.html#m_keys">m_keys</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vector of NodeSortKeys</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/NodeSorter.html#NodeSorter(org.apache.xpath.XPathContext)">NodeSorter</A></B>(<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;p)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a NodeSorter, passing in the XSL TransformerFactory
so it can know how to get the node data according to
the proper whitespace rules.</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>(package private) &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/NodeSorter.html#compare(org.apache.xalan.transformer.NodeSorter.NodeCompareElem, org.apache.xalan.transformer.NodeSorter.NodeCompareElem, int, org.apache.xpath.XPathContext)">compare</A></B>(<A HREF="../../../../org/apache/xalan/transformer/NodeSorter.NodeCompareElem.html" title="class in org.apache.xalan.transformer">NodeSorter.NodeCompareElem</A>&nbsp;n1,
<A HREF="../../../../org/apache/xalan/transformer/NodeSorter.NodeCompareElem.html" title="class in org.apache.xalan.transformer">NodeSorter.NodeCompareElem</A>&nbsp;n2,
int&nbsp;kIndex,
<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;support)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the results of a compare of two nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xalan/transformer/NodeSorter.html#mergesort(java.util.Vector, java.util.Vector, int, int, org.apache.xpath.XPathContext)">mergesort</A></B>(java.util.Vector&nbsp;a,
java.util.Vector&nbsp;b,
int&nbsp;l,
int&nbsp;r,
<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;support)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This implements a standard Mergesort, as described in
Robert Sedgewick's Algorithms book.</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="../../../../org/apache/xalan/transformer/NodeSorter.html#sort(org.apache.xml.dtm.DTMIterator, java.util.Vector, org.apache.xpath.XPathContext)">sort</A></B>(<A HREF="../../../../org/apache/xml/dtm/DTMIterator.html" title="interface in org.apache.xml.dtm">DTMIterator</A>&nbsp;v,
java.util.Vector&nbsp;keys,
<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;support)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given a vector of nodes, sort each node according to
the criteria in the keys.</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_execContext"><!-- --></A><H3>
m_execContext</H3>
<PRE>
<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A> <A HREF="../../../../src-html/org/apache/xalan/transformer/NodeSorter.html#line.42"><B>m_execContext</B></A></PRE>
<DL>
<DD>Current XPath context
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="m_keys"><!-- --></A><H3>
m_keys</H3>
<PRE>
java.util.Vector <A HREF="../../../../src-html/org/apache/xalan/transformer/NodeSorter.html#line.45"><B>m_keys</B></A></PRE>
<DL>
<DD>Vector of NodeSortKeys
<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="NodeSorter(org.apache.xpath.XPathContext)"><!-- --></A><H3>
NodeSorter</H3>
<PRE>
public <A HREF="../../../../src-html/org/apache/xalan/transformer/NodeSorter.html#line.59"><B>NodeSorter</B></A>(<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;p)</PRE>
<DL>
<DD>Construct a NodeSorter, passing in the XSL TransformerFactory
so it can know how to get the node data according to
the proper whitespace rules.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>p</CODE> - Xpath context to use</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="sort(org.apache.xml.dtm.DTMIterator, java.util.Vector, org.apache.xpath.XPathContext)"><!-- --></A><H3>
sort</H3>
<PRE>
public void <A HREF="../../../../src-html/org/apache/xalan/transformer/NodeSorter.html#line.73"><B>sort</B></A>(<A HREF="../../../../org/apache/xml/dtm/DTMIterator.html" title="interface in org.apache.xml.dtm">DTMIterator</A>&nbsp;v,
java.util.Vector&nbsp;keys,
<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;support)
throws javax.xml.transform.TransformerException</PRE>
<DL>
<DD>Given a vector of nodes, sort each node according to
the criteria in the keys.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>v</CODE> - an vector of Nodes.<DD><CODE>keys</CODE> - a vector of NodeSortKeys.<DD><CODE>support</CODE> - XPath context to use
<DT><B>Throws:</B>
<DD><CODE>javax.xml.transform.TransformerException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="compare(org.apache.xalan.transformer.NodeSorter.NodeCompareElem, org.apache.xalan.transformer.NodeSorter.NodeCompareElem, int, org.apache.xpath.XPathContext)"><!-- --></A><H3>
compare</H3>
<PRE>
int <A HREF="../../../../src-html/org/apache/xalan/transformer/NodeSorter.html#line.126"><B>compare</B></A>(<A HREF="../../../../org/apache/xalan/transformer/NodeSorter.NodeCompareElem.html" title="class in org.apache.xalan.transformer">NodeSorter.NodeCompareElem</A>&nbsp;n1,
<A HREF="../../../../org/apache/xalan/transformer/NodeSorter.NodeCompareElem.html" title="class in org.apache.xalan.transformer">NodeSorter.NodeCompareElem</A>&nbsp;n2,
int&nbsp;kIndex,
<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;support)
throws javax.xml.transform.TransformerException</PRE>
<DL>
<DD>Return the results of a compare of two nodes.
TODO: Optimize compare -- cache the getStringExpr results, key by m_selectPat + hash of node.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n1</CODE> - First node to use in compare<DD><CODE>n2</CODE> - Second node to use in compare<DD><CODE>kIndex</CODE> - Index of NodeSortKey to use for sort<DD><CODE>support</CODE> - XPath context to use
<DT><B>Returns:</B><DD>The results of the compare of the two nodes.
<DT><B>Throws:</B>
<DD><CODE>javax.xml.transform.TransformerException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="mergesort(java.util.Vector, java.util.Vector, int, int, org.apache.xpath.XPathContext)"><!-- --></A><H3>
mergesort</H3>
<PRE>
void <A HREF="../../../../src-html/org/apache/xalan/transformer/NodeSorter.html#line.295"><B>mergesort</B></A>(java.util.Vector&nbsp;a,
java.util.Vector&nbsp;b,
int&nbsp;l,
int&nbsp;r,
<A HREF="../../../../org/apache/xpath/XPathContext.html" title="class in org.apache.xpath">XPathContext</A>&nbsp;support)
throws javax.xml.transform.TransformerException</PRE>
<DL>
<DD>This implements a standard Mergesort, as described in
Robert Sedgewick's Algorithms book. This is a better
sort for our purpose than the Quicksort because it
maintains the original document order of the input if
the order isn't changed by the sort.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>a</CODE> - First vector of nodes to compare<DD><CODE>b</CODE> - Second vector of nodes to compare<DD><CODE>l</CODE> - Left boundary of partition<DD><CODE>r</CODE> - Right boundary of partition<DD><CODE>support</CODE> - XPath context to use
<DT><B>Throws:</B>
<DD><CODE>javax.xml.transform.TransformerException</CODE></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/NodeSorter.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/MsgMgr.html" title="class in org.apache.xalan.transformer"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xalan/transformer/NodeSorter.NodeCompareElem.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/NodeSorter.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="NodeSorter.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;<A HREF="#nested_class_summary">NESTED</A>&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>