org.apache.xml.utils

## Class IntStack

- java.lang.Object
- - org.apache.xml.utils.IntVector
  - - org.apache.xml.utils.IntStack

All Implemented Interfaces:
  java.lang.Cloneable

    public class IntStack
    extends IntVector

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.

Usage:
  **For internal use only**

### Constructor Summary

Constructors
Constructor and Description
`IntStack()` Default constructor.
`IntStack(int blocksize)` Construct a IntVector, using the given block size.
`IntStack(IntStack v)` Copy constructor for IntStack

### Method Summary

Methods
`java.lang.Object` `clone()` Returns clone of current IntStack
`boolean` `empty()` Tests if this stack is empty.
`int` `peek()` Looks at the object at the top of this stack without removing it from the stack.
`int` `peek(int n)` Looks at the object at the position the stack counting down n items.
`int` `pop()` Removes the object at the top of this stack and returns that object as the value of this function.
`int` `push(int i)` Pushes an item onto the top of this stack.
`void` `quickPop(int n)` Quickly pops a number of items from the stack.
`int` `search(int o)` Returns where an object is on this stack.
`void` `setTop(int val)` Sets an object at a the top of the statck

### Methods inherited from class org.apache.xml.utils.IntVector

`addElement, addElements, addElements, contains, elementAt, indexOf, indexOf, insertElementAt, lastIndexOf, removeAllElements, removeElement, removeElementAt, setElementAt, setSize, size`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### IntStack

    public IntStack()

Default constructor. Note that the default block size is very small, for small lists.

#### IntStack

    public IntStack(int blocksize)

Construct a IntVector, using the given block size.

Parameters:
  `blocksize` - Size of block to allocate

#### IntStack

    public IntStack(IntStack v)

Copy constructor for IntStack

Parameters:
  `v` - IntStack to copy

### Method Detail

#### push

    public int push(int i)

Pushes an item onto the top of this stack.

Parameters:
  `i` - the int to be pushed onto this stack.
Returns:
  the `item` argument.

#### pop

    public final int pop()

Removes the object at the top of this stack and returns that object as the value of this function.

Returns:
  The object at the top of this stack.

#### quickPop

    public final void quickPop(int n)

Quickly pops a number of items from the stack.

#### peek

    public final int peek()

Looks at the object at the top of this stack without removing it from the stack.

Returns:
  the object at the top of this stack.
Throws:
  `java.util.EmptyStackException` - if this stack is empty.

#### peek

    public int peek(int n)

Looks at the object at the position the stack counting down n items.

Parameters:
  `n` - The number of items down, indexed from zero.
Returns:
  the object at n items down.
Throws:
  `java.util.EmptyStackException` - if this stack is empty.

#### setTop

    public void setTop(int val)

Sets an object at a the top of the statck

Parameters:
  `val` - object to set at the top
Throws:
  `java.util.EmptyStackException` - if this stack is empty.

#### empty

    public boolean empty()

Tests if this stack is empty.

Returns:
  `true` if this stack is empty; `false` otherwise.
Since:
  JDK1.0

#### search

    public int search(int o)

Returns where an object is on this stack.

Parameters:
  `o` - the desired object.
Returns:
  the distance from the top of the stack where the object is] located; the return value `-1` indicates that the object is not on the stack.
Since:
  JDK1.0

#### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

Returns clone of current IntStack

Overrides:
  `clone` in class `IntVector`
Returns:
  clone of current IntStack
Throws:
  `java.lang.CloneNotSupportedException`