package java.util;
/*
* $Log: Queue.java,v $
* Revision 1.2 2005/11/23 17:46:45 mpscholz
* minor javadoc related changes
*
* Revision 1.1 2003/08/17 14:59:42 mpscholz
* enhanced Vector
* added Stack and Queue and associated exception classes
*
*/
/////////////////////////////////////////////////////////
/**
* A FIFO Queue of objects.
*/
public class Queue extends Vector {
////////////////////////////////////////////
// constants
////////////////////////////////////////////
////////////////////////////////////////////
// fields
////////////////////////////////////////////
////////////////////////////////////////////
// constructors
////////////////////////////////////////////
////////////////////////////////////////////
/**
* creates a new Queue instance
*/
public Queue() {
// do nothing
} // Queue()
////////////////////////////////////////////
/**
* pushes an object onto the Queue
* @param anObject the object
* @return Object the object pushed onto the Queue
*/
public Object push(Object anObject) {
// add the object to base vector
addElement(anObject);
return anObject;
} // push()
////////////////////////////////////////////
/**
* fetches an object from the start of the Queue
* and removes it
* @return Object the object removed from the start of the stock
* @throws EmptyQueueException
*/
public synchronized Object pop() throws EmptyQueueException {
// get object
Object popped = peek();
// remove and return object
removeElementAt(0);
return popped;
} // pop()
////////////////////////////////////////////
/**
* fetches an object from the start of the Queue
* <br>does not remove it!
* @return Object the object at the start of the Queue
* @throws EmptyQueueException
*/
public synchronized Object peek() throws EmptyQueueException {
// empty Queue?
if(size()==0)
throw new EmptyQueueException();
// return first element
return elementAt(0);
} // peek()
////////////////////////////////////////////
/**
* is this Queue empty?
* @return boolean true, if the Queue is empty
*/
public boolean empty() {
return (size()==0);
} // empty()
} // class Queue