<!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:38 PDT 2012 -->
<TITLE>
IntStack
</TITLE>

<META NAME="keywords" CONTENT="org.apache.xml.utils.IntStack class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="IntStack";
}
</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/IntStack.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/xml/utils/Hashtree2Node.html" title="class in org.apache.xml.utils"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xml/utils/IntVector.html" title="class in org.apache.xml.utils"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/xml/utils/IntStack.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IntStack.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="#fields_inherited_from_class_org.apache.xml.utils.IntVector">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;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.xml.utils</FONT>
<BR>
Class IntStack</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/apache/xml/utils/IntVector.html" title="class in org.apache.xml.utils">org.apache.xml.utils.IntVector</A>
      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.xml.utils.IntStack</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable</DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.34"><B>IntStack</B></A><DT>extends <A HREF="../../../../org/apache/xml/utils/IntVector.html" title="class in org.apache.xml.utils">IntVector</A></DL>
</PRE>

<P>
Implement a stack of simple integers.

 %OPT%
 This is currently based on IntVector, which permits fast acess but pays a
 heavy recopying penalty if/when its size is increased. If we expect deep
 stacks, we should consider a version based on ChunkedIntVector.
<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>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.xml.utils.IntVector"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.xml.utils.<A HREF="../../../../org/apache/xml/utils/IntVector.html" title="class in org.apache.xml.utils">IntVector</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/xml/utils/IntVector.html#m_blocksize">m_blocksize</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#m_firstFree">m_firstFree</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#m_map">m_map</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#m_mapSize">m_mapSize</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="../../../../org/apache/xml/utils/IntStack.html#IntStack()">IntStack</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/xml/utils/IntStack.html#IntStack(int)">IntStack</A></B>(int&nbsp;blocksize)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a IntVector, using the given block size.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/xml/utils/IntStack.html#IntStack(org.apache.xml.utils.IntStack)">IntStack</A></B>(<A HREF="../../../../org/apache/xml/utils/IntStack.html" title="class in org.apache.xml.utils">IntStack</A>&nbsp;v)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy constructor for IntStack</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;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xml/utils/IntStack.html#clone()">clone</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns clone of current IntStack</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="../../../../org/apache/xml/utils/IntStack.html#empty()">empty</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tests if this stack is empty.</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/xml/utils/IntStack.html#peek()">peek</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Looks at the object at the top of this stack without removing it
 from the stack.</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/xml/utils/IntStack.html#peek(int)">peek</A></B>(int&nbsp;n)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Looks at the object at the position the stack counting down n items.</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/xml/utils/IntStack.html#pop()">pop</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the object at the top of this stack and returns that
 object as the value of this function.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/xml/utils/IntStack.html#push(int)">push</A></B>(int&nbsp;i)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pushes an item onto the top of this stack.</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/xml/utils/IntStack.html#quickPop(int)">quickPop</A></B>(int&nbsp;n)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quickly pops a number of items from the stack.</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/xml/utils/IntStack.html#search(int)">search</A></B>(int&nbsp;o)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns where an object is on this stack.</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/xml/utils/IntStack.html#setTop(int)">setTop</A></B>(int&nbsp;val)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets an object at a the top of the statck</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.xml.utils.IntVector"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.xml.utils.<A HREF="../../../../org/apache/xml/utils/IntVector.html" title="class in org.apache.xml.utils">IntVector</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/xml/utils/IntVector.html#addElement(int)">addElement</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#addElements(int)">addElements</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#addElements(int, int)">addElements</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#contains(int)">contains</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#elementAt(int)">elementAt</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#indexOf(int)">indexOf</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#indexOf(int, int)">indexOf</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#insertElementAt(int, int)">insertElementAt</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#lastIndexOf(int)">lastIndexOf</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#removeAllElements()">removeAllElements</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#removeElement(int)">removeElement</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#removeElementAt(int)">removeElementAt</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#setElementAt(int, int)">setElementAt</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#setSize(int)">setSize</A>, <A HREF="../../../../org/apache/xml/utils/IntVector.html#size()">size</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.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="IntStack()"><!-- --></A><H3>
IntStack</H3>
<PRE>
public <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.41"><B>IntStack</B></A>()</PRE>
<DL>
<DD>Default constructor.  Note that the default
 block size is very small, for small lists.
<P>
</DL>
<HR>

<A NAME="IntStack(int)"><!-- --></A><H3>
IntStack</H3>
<PRE>
public <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.51"><B>IntStack</B></A>(int&nbsp;blocksize)</PRE>
<DL>
<DD>Construct a IntVector, using the given block size.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>blocksize</CODE> - Size of block to allocate</DL>
</DL>
<HR>

<A NAME="IntStack(org.apache.xml.utils.IntStack)"><!-- --></A><H3>
IntStack</H3>
<PRE>
public <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.61"><B>IntStack</B></A>(<A HREF="../../../../org/apache/xml/utils/IntStack.html" title="class in org.apache.xml.utils">IntStack</A>&nbsp;v)</PRE>
<DL>
<DD>Copy constructor for IntStack
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>v</CODE> - IntStack to copy</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="push(int)"><!-- --></A><H3>
push</H3>
<PRE>
public int <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.72"><B>push</B></A>(int&nbsp;i)</PRE>
<DL>
<DD>Pushes an item onto the top of this stack.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>i</CODE> - the int to be pushed onto this stack.
<DT><B>Returns:</B><DD>the <code>item</code> argument.</DL>
</DD>
</DL>
<HR>

<A NAME="pop()"><!-- --></A><H3>
pop</H3>
<PRE>
public final int <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.99"><B>pop</B></A>()</PRE>
<DL>
<DD>Removes the object at the top of this stack and returns that
 object as the value of this function.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>The object at the top of this stack.</DL>
</DD>
</DL>
<HR>

<A NAME="quickPop(int)"><!-- --></A><H3>
quickPop</H3>
<PRE>
public final void <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.108"><B>quickPop</B></A>(int&nbsp;n)</PRE>
<DL>
<DD>Quickly pops a number of items from the stack.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="peek()"><!-- --></A><H3>
peek</H3>
<PRE>
public final int <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.120"><B>peek</B></A>()</PRE>
<DL>
<DD>Looks at the object at the top of this stack without removing it
 from the stack.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the object at the top of this stack.
<DT><B>Throws:</B>
<DD><CODE>java.util.EmptyStackException</CODE> - if this stack is empty.</DL>
</DD>
</DL>
<HR>

<A NAME="peek(int)"><!-- --></A><H3>
peek</H3>
<PRE>
public int <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.138"><B>peek</B></A>(int&nbsp;n)</PRE>
<DL>
<DD>Looks at the object at the position the stack counting down n items.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>n</CODE> - The number of items down, indexed from zero.
<DT><B>Returns:</B><DD>the object at n items down.
<DT><B>Throws:</B>
<DD><CODE>java.util.EmptyStackException</CODE> - if this stack is empty.</DL>
</DD>
</DL>
<HR>

<A NAME="setTop(int)"><!-- --></A><H3>
setTop</H3>
<PRE>
public void <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.156"><B>setTop</B></A>(int&nbsp;val)</PRE>
<DL>
<DD>Sets an object at a the top of the statck
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>val</CODE> - object to set at the top
<DT><B>Throws:</B>
<DD><CODE>java.util.EmptyStackException</CODE> - if this stack is empty.</DL>
</DD>
</DL>
<HR>

<A NAME="empty()"><!-- --></A><H3>
empty</H3>
<PRE>
public boolean <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.174"><B>empty</B></A>()</PRE>
<DL>
<DD>Tests if this stack is empty.
<P>
<DD><DL>

<DT><B>Returns:</B><DD><code>true</code> if this stack is empty;
          <code>false</code> otherwise.<DT><B>Since:</B></DT>
  <DD>JDK1.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="search(int)"><!-- --></A><H3>
search</H3>
<PRE>
public int <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.188"><B>search</B></A>(int&nbsp;o)</PRE>
<DL>
<DD>Returns where an object is on this stack.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - the desired object.
<DT><B>Returns:</B><DD>the distance from the top of the stack where the object is]
          located; the return value <code>-1</code> indicates that the
          object is not on the stack.<DT><B>Since:</B></DT>
  <DD>JDK1.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="clone()"><!-- --></A><H3>
clone</H3>
<PRE>
public java.lang.Object <A HREF="../../../../src-html/org/apache/xml/utils/IntStack.html#line.206"><B>clone</B></A>()
                       throws java.lang.CloneNotSupportedException</PRE>
<DL>
<DD>Returns clone of current IntStack
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/xml/utils/IntVector.html#clone()">clone</A></CODE> in class <CODE><A HREF="../../../../org/apache/xml/utils/IntVector.html" title="class in org.apache.xml.utils">IntVector</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>clone of current IntStack
<DT><B>Throws:</B>
<DD><CODE>java.lang.CloneNotSupportedException</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/IntStack.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/xml/utils/Hashtree2Node.html" title="class in org.apache.xml.utils"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/xml/utils/IntVector.html" title="class in org.apache.xml.utils"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/xml/utils/IntStack.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IntStack.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="#fields_inherited_from_class_org.apache.xml.utils.IntVector">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;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
