public interface Queue {  
 /** 
  * @return number of elements in the queue.
  */
  public int size();  
 /** 
  * @return true if the queue is empty, false otherwise.
  */
  public boolean isEmpty(); 
 /**
  * Inspect the element at the front of the queue.
  *
  * @return element at the front of the queue.
  * @exception QueueEmptyException if the queue is empty.
  */
  public Object front() throws QueueEmptyException; 
 /** 
  * Insert an element at the rear of the queue.
  *
  * @param element new element to be inserted.
  */
  public void enqueue (Object element); 
 /** 
  * Remove the element at the front of the queue.
  *
  * @return element removed.
  * @exception QueueEmptyException if the queue is empty.
  */
  public Object dequeue() throws QueueEmptyException; 
}