org.apache.xml.utils
Class ObjectStack

java.lang.Object
  extended by org.apache.xml.utils.ObjectVector
      extended by org.apache.xml.utils.ObjectStack
All Implemented Interfaces:
java.lang.Cloneable

public class ObjectStack
extends ObjectVector

Implement a stack of simple integers. %OPT% This is currently based on ObjectVector, 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 ChunkedObjectVector.


Field Summary
 
Fields inherited from class org.apache.xml.utils.ObjectVector
m_blocksize, m_firstFree, m_map, m_mapSize
 
Constructor Summary
ObjectStack()
          Default constructor.
ObjectStack(int blocksize)
          Construct a ObjectVector, using the given block size.
ObjectStack(ObjectStack v)
          Copy constructor for ObjectStack
 
Method Summary
 java.lang.Object clone()
          Returns clone of current ObjectStack
 boolean empty()
          Tests if this stack is empty.
 java.lang.Object peek()
          Looks at the object at the top of this stack without removing it from the stack.
 java.lang.Object peek(int n)
          Looks at the object at the position the stack counting down n items.
 java.lang.Object pop()
          Removes the object at the top of this stack and returns that object as the value of this function.
 java.lang.Object push(java.lang.Object 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(java.lang.Object o)
          Returns where an object is on this stack.
 void setTop(java.lang.Object val)
          Sets an object at a the top of the statck
 
Methods inherited from class org.apache.xml.utils.ObjectVector
addElement, addElements, addElements, contains, elementAt, indexOf, indexOf, insertElementAt, lastIndexOf, removeAllElements, removeElement, removeElementAt, setElementAt, setSize, setToSize, size
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectStack

public ObjectStack()
Default constructor. Note that the default block size is very small, for small lists.


ObjectStack

public ObjectStack(int blocksize)
Construct a ObjectVector, using the given block size.

Parameters:
blocksize - Size of block to allocate

ObjectStack

public ObjectStack(ObjectStack v)
Copy constructor for ObjectStack

Parameters:
v - ObjectStack to copy
Method Detail

push

public java.lang.Object push(java.lang.Object 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 java.lang.Object 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 void quickPop(int n)
Quickly pops a number of items from the stack.


peek

public java.lang.Object 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 java.lang.Object 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(java.lang.Object 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(java.lang.Object 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 ObjectStack

Overrides:
clone in class ObjectVector
Returns:
clone of current ObjectStack
Throws:
java.lang.CloneNotSupportedException